今天写代码发现一个小的问题,用箭头函数替换匿名函数出现错误。
具体情况如下:
用nodejs创建一个很简单的http服务器:
const http = require('http')
http.createServer(function(req,res){
res.writeHead(200);
res.end('hello');
}).listen(3000)
这样写没有问题,会在localhost:3000/生成对应页面,岁月静好。
但是把匿名函数换成箭头函数之后会报错。。。:
const http = require('http')
http.createServer((req,res)=>{
res.writeHead(200);
res.end('hello');
}).listen(3000)
查找之后发现是因为某些版本的nodejs对于ES6的支持不完全,
解决方法:
1.修改package.json文件
{
"dependencies": {
"babel-cli": "^6.0.0",
"babel-preset-es2015": "^6.0.0"
},
"scripts": {
"start": "babel-node --presets es2015 app.js"
}
}
之后 npm start
或者 2.更新nodejs
$ sudo npm cache clean -f
$ sudo npm install -g n
$ sudo n stable
参考资料 https://stackoverflow.com/questions/43048956/basic-node-js-function-vs-notation