常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| #查看node_modules的安装位置 npm root -g #安装到当前node_modules中 npm install packageName #全局安装 npm install -g packageName #全局范围内已安装的包 npm list -g #发现包的新版本情况 npm outdated #升级包(会导致package-lock.json变更,但不会升级主版本,一般API不兼容时才会发生主版本变更) npm update #升级包,包括主版本不同也升级 npm install -g npm-check-updates ncu -u npm update #配置列表 npm config list
|
npm设置代理
方法一:编辑**~/.npmrc**文件
1 2
| proxy=http://127.0.0.1:7890/ https-proxy=http://127.0.0.1:7890/
|
方法二:
1 2
| npm config set proxy http://127.0.0.1:7890 npm config set https-proxy http://127.0.0.1:7890
|
npx
1 2 3 4 5 6
| # 无需先安装就可以使用cowsay npx cowsay "测试" # 直接运行url里的代码 npx url # 使用不同的版本运行代码 npx node@12
|
引用包
1
| const name = require('packageName')
|
二进制包则直接放到node_modules/.bin/ 文件夹下。
字符串格式化
1 2
| console.log('我的%s已经%d岁', '猫', 2) console.log('%o', Number)
|
- %s 会格式化变量为字符串
- %d 会格式化变量为数字
- %i 会格式化变量为其整数部分
- %o 会格式化变量为对象
process.nextTick 快于 setImmediate 快于 setTimeout。
process.nextTick在下一个滴答开始之前执行。
setTimeout在下一个滴答结束时执行。
setImmediate与0毫秒的setTimeout类似。
基础代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| const express = require('express'); const app = express(); const bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(function (req, res, next) { console.log('request log ' + new Date()); next(); });
app.use(function (req, res, next) { res.send('没有找到api'); });
app.get('/', (req, res) => { res.send("hello world"); });
app.get('/hi', (req, res) => { res.send("Hi"); });
app.get(/^\/hi\/(\d+)$/, (req, res) => { res.send("Hi: id=" + req.params[0]); });
app.get('/hi/:user', (req, res) => { res.send("Hi: " + req.params.user); });
app.post('/hi', (req, res) => { res.send('HI: ' + JSON.stringify(req.body)); });
app.listen(8080, () => { console.log('Is listening on port 8080'); });
|