我必须修改基本 Node.js 文件上的代码才能使其正常工作,我想知道为什么?
失败:
const server = http.createServer((req, res) => {
这有效:
var server = http.createServer(function(req, res){
错误:
/my-app/tmp/hello2.js:6 var server = http.createServer((req, res) => { ^ SyntaxError: Unexpected token > at Module._compile (module.js:439:25) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:945:3
完整代码
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
//const server = http.createServer((req, res) => {
// above *wont work*?? below works
var server = http.createServer(function(req, res){
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
// server.listen(port, hostname, () => {
// above *wont work*?? below works
server.listen(port, hostname, function() {
console.log(`Server running at http://${hostname}:${port}/`);
});
最佳答案
这是因为您的 Node.js 不支持 ES6 的某些标准功能
两种解决方案
您必须编辑 package.json
{ "dependencies": { "babel-cli": "^6.0.0", "babel-preset-es2015": "^6.0.0" }, "scripts": { "start": "babel-node --presets es2015 app.js" } }
并运行
npm start
更新您的 Node.js
$ sudo npm cache clean -f $ sudo npm install -g n $ sudo n stable
关于javascript - 基本的node.js "function"与 "=>"表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43048956/