配置Angular的server.js时箭头函数报‘expression expected’错误求助
解决Angular项目server.js中箭头函数的"expression expected"错误
刚从Java转JavaScript的话,确实容易踩一些语法细节的坑!你遇到的"expression expected"提示,其实是代码里几个小语法错误导致的,我帮你逐个揪出来:
- require模块的参数错误:
var http = require(http);这里应该传入字符串形式的模块名,改成var http = require('http'); - 文件路径拼写错误:
var api = require('./server'/api);路径拼接用斜杠的方式不对,正确写法是var api = require('./server/api'); - app.get的语法错误:这是导致箭头函数报错的直接原因!你写的
app.get('*'), (req, res) => { ... }把app.get的参数拆成了两个独立语句,JS解析器会认为app.get('*')已经是完整调用,后面的箭头函数就成了无意义的孤立表达式。要把逗号改成括号里的参数分隔,正确写法是app.get('*', (req, res) => { res.sendFile(path.join(__dirname, "dist/index.html")); }) - 变量拼写错误:
precess.env.PORT里的precess是拼写错误,应该是process,改成var port = process.env.PORT || '3000';
修正后的完整server.js代码如下:
var express = require('express'); var bodyParser = require('body-parser'); var path = require('path'); var http = require('http'); var app = express(); var api = require('./server/api'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: false})); app.use(express.static(path.join(__dirname, 'dist'))); app.use('/', api); app.get('*', (req, res) => { res.sendFile(path.join(__dirname, "dist/index.html")); }); var port = process.env.PORT || '3000'; app.set('port', port); var server = http.createServer(app); server.listen(port, () => console.log("Server is running"));
这些都是JavaScript里基础的语法细节,和Java的语法规则有些差异,多写几次就熟悉啦!
内容的提问来源于stack exchange,提问作者Ryder Thacker
相关产品推荐
相关产品推荐

