Node.js 教程,node,Node.js,nodejs 在线

2683Node.js 教程

# node -v

v13.9.0

2682Node.js 安装配置

建议 nvm(Node Version Manager)
nvm是 Nodejs 版本管理器 让我们方便的对切换Nodejs 版本

nvm 介绍:使用 nvm 管理不同版本的 node 与 npm

nvm的详细安装以及使用

2661Node.js 教程

npm WARN package.json wxapp-unpacker@1.0.1 license should be a valid SPDX license expression

"license": "GPL-3.0-or-later",

修改成 "license": "GPL-3.0",

就可以了

//github.com/npm/npm/issues/8773

How to support proprietary licenses in package.json without triggering an NPM warning? · Issue #8795 · npm/npm

//github.com/npm/npm/issues/8795

823Node.js RESTful API

如果在同一个 server.js 里创建多个 RESTful API , 并且 :id 放在前边, 那么它会拦截其他的请求, 比如:

var id = 2;
// 删除用户
app.get('/deleteUser', function (req, res) {
   //  读取已存在用户
   fs.readFile( __dirname + "/" + "user.json", 'utf8', function (err, data) {
       data = JSON.parse( data );
       delete data["user" + id];
       console.log( data );
       res.end( JSON.stringify(data));
   });
});

// 查询用户信息 (放到前边会拦截其他请求)
app.get('/:id', function(req, resp){
    fs.readFile(__dirname + '/user.json', 'utf-8', function(err, data){
        if(err){
            console.log(err.stack);
            return;
        }

        data = JSON.parse(data);
        var user = data['user' + req.params.id];
        console.log(user);
        resp.end(JSON.stringify(user));
    } );
});

在浏览器中访问 http://127.0.0.1:8081/deleteUser, 控制台打印信息如下:

应用实例,访问地址为 http://0.0.0.0:8081
undefined
undefined

822Node.js RESTful API

如果有人和我一样遇到乱码的问题,除了不是文件读取的编码问题,可以考虑为浏览器自动为没有在 html > head 中解释编码的 html 编码为本地默认编码。可以主动添加 head

res.setHeader('Content-Type', 'text/html; charset=utf8');