nodejs学习(一)
 2018-03-30 16:40:06   458   0   

本文最后更新于天前,文中介绍内容及环境可能已不适用.请谨慎参考.

工作交接之余,搞点时间看看书,本来是看js的,又不想用eclipse启动web服务,想起nodejs也是可以起web服务器吗,于是捣鼓一二,自己记录以免忘记.

nodejs 简单使用

使用vscode, npm,nodejs.

安装不表.

智能提示用 @types,,配套的body-parser,multer等

npm  install  -g express
npm  install  -g body-parser
npm  install  -g multer
npm  install  -g supervisor

npm  install  @types/express

 

启动简单http服务器.

  vim  server.js

启动node服务器 node server.js

自动监听重启服务

 supervisor  --hamony server.js

 

静态目录资源加载

express().use(express.static("mulu")) 加载静态资源目录,简单的web服务器启动

multer.array('name') 解析文件上传

文件操作

fs.readFile/fs.writeFile 文件操作

response.writeHead/response.sendFile/response.end

 

var express = require("express");
var app = express();
var fs = require("fs");

var bodyParser = require("body-parser");
var multer = require("multer");

app.use(express.static("public"));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(multer({ dest: '/tmp' }).array('file'));

//sendFile
app.get("/menu", function (req, res) {
    
        //res.send("hello !");
        var path = __dirname + "/public/index.html";
        console.log(path)
        res.sendFile(path);
        
    });
    
//post upload
app.post('/file_upload', function (req, res) {

    console.log(req.files[0]);
    var dest_file = __dirname + '/tmp/' + req.files[0].originalname;

    var response={};

    fs.readFile(req.files[0].path, function (err, data) {
        fs.writeFile(dest_file, data, function (err) {
            if (err) {
                console.log(err);
            }
            else{
                response={
                    message:'upload ok!',
                    filename:req.files[0].originalname
                }
            }
            console.log(response);
            res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});//设置response编码为utf-8
            res.end(JSON.stringify(response));
        });
    });


});

var server = app.listen(8081, function () {

    var host = server.address().address;
    var port = server.address().port;
    console.log("server started " + host + ":" + port);
});

javascript精粹

顺便记录下javascript精粹中的一些东西,权当学习笔记了

prototype原型

for in 遍历对象的所有属性包括prototype原型中的属性

hasOwnProperty检测对象自己是否包含相关属性(不包括原型)

对象中的同名属性覆盖原型同名属性/delete 对象属性后,原型同名方法重新起作用

var obj = {};
obj.a1 = 'a1';
obj.f1 = function () {
    alert(111);
}

Object.prototype.f2 = function () {
    alert('property');
}
Object.prototype.name = "obj";
obj.name = "my obj";
for (name in obj) {
    //  if(typeof obj[name]!=='function'){
    if (obj.hasOwnProperty(name))
        document.writeln(name + '[own]:' + obj[name] + "<br>");
    else
        document.writeln(name + ':' + obj[name] + "<br>");
    //  }
}

原型方法简化


Function.prototype.method = function (name, func) {
    if (!this.prototype[name])
        this.prototype[name] = func;
    return this;
}

String.method('trim', function () {
    return this.replace(/^\s+|\s+$/g, '');
});

document.writeln("                  sdtest        ".trim() + "<br>");

 


 2018-09-13 16:15:12 
 1

  本文基于CC BY-NC-ND 4.0 许可协议发布,作者:野生的喵喵 固定链接: 【nodejs学习(一)】 转载请注明



发表新的评论
{{s_uid}}   , 欢迎回来.
您的称呼(*必填):
您的邮箱地址(*必填,您的邮箱地址不会公开,仅作为有回复后的消息通知手段):
您的站点地址(选填):
留言:

∑( ° △ °|||)︴

(๑•̀ㅂ•́)و✧
<( ̄) ̄)>
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
[]~( ̄▽ ̄)~*
( ̄ˇ ̄)
╮( ̄▽ ̄)╭
( ̄ε(# ̄)
(⊙ˍ⊙)
( ̄▽ ̄)~*
∑( ° △ °|||)︴

文章分类

可能喜欢 

KxのBook@Copyright 2017- All Rights Reserved
Designed and themed by 野生的喵喵   1345171   38300