nodejs的全局安装的模块都装到这里了:/usr/local/lib/node_modules/
搞前段和后端开发,一个idea就够了,这个工具太牛逼了!
用idea创建的express框架示例程序,改文件后直接刷新就行,自动完成监控。
安装supervisor
npm install -g supervisor
用supervisor启动js
supervisor app.js
涉及到ES6,于是找到了一篇文章介绍ES6的特性
很喜欢下面几个特性:
箭头操作符
类的支持
字符串模板
参数默认值,不定参数,拓展参数
let与const 关键字
for of 值遍历
iterator,generator
模块
Map,Set 和 WeakMap,WeakSet
Proxies
Math,Number,String,Object 的新API
Promises
js抛异常的时候,要注意那个异常类的第一个字符大写,小写不行!
// Throws with a ReferenceError because z is undefined
try {
throw new Error("id: 不存在");
} catch (err) {
// Handle the error here.
console.log(err);
console.error(e);
}
console.log和console.error不太一样,log的是白色的,error的信息在控制台显示的是黄色的,ide为IDEA。
nodejs处理post请求的时候,需要注意:
如果是一般的表单默认行为(www-form-urlencoded
)或者form-data
的,都可以正常接收,如果是raw格式的,这时相当于传一个大文件上来,则需要发送端的raw数据是json
格式的,而且请求的header也必须是 content-type:application/json
才可以。
详细内容可以参考这篇文档:
然后在router里面可以进行post处理
//引入body-parser,然后进行一些设置
var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '2mb'}));
app.use(bodyParser.urlencoded({ extended: true }));
/**
- 增加数据Post
*/
router.post('/createUser',function (req,res) {
console.log(req.body);
res.send(req.body);
});
此时postman有一个蛋疼的bug,自定义header有问题,发送的header总是文本,所以用curl来模拟
curl -H "Content-Type: application/json" -X POST -d '{"username":"xyz","password":"xyz"}' http://localhost:3000/users/createUser
感谢stack-overflow的帖子:
里面详细的讲解了如何通过命令行提交json格式的数据,然后再接收就正常了。
其他参考文档:
注意这里允许raw
格式的post请求后,x-www-form-urlencoded
格式的数据也一样可以处理,但是form-data
的不行。因此,我们可以让前端程序员发送post请求时,把格式都改一下,别用form-data
。
发送xml的方式如下:
curl -H "Content-Type: text/xml" -X POST -d 'asdf ' http://localhost:3000/users/xml