Node.js开发的Web应用在localhost无法加载,求排查解决方法
问题修复方案
你给出的代码存在几处明显语法和配置错误,按下面步骤修改即可解决加载问题:
1. 修复body-parser中间件配置错误
bodyParser.json是可执行的中间件方法,你没有加括号执行,会导致所有进入的JSON请求卡住无响应,修改代码为:
app.use(bodyParser.json())
2. 修复handlebars模板引擎配置错误
设置视图引擎的第二个参数需要传入模板后缀的字符串,而你传入了handlebars构造对象,属于参数类型错误,修改代码为:
app.set('view engine', 'handlebars')
3. 适配新版express-handlebars导入规则(针对v6及以上版本)
如果你安装的是最新版的express-handlebars,原有的导入和注册方式已经失效,需要调整为:
// 导入部分修改 const { engine } = require('express-handlebars') // 引擎注册部分修改 app.engine('handlebars', engine({defaultLayout: 'main'}))
剩余排查项
如果修改完以上代码后仍然无法访问,请检查以下项:
- 确认项目根目录存在
views文件夹,文件夹内有你要渲染的oi.handlebars模板文件,同时存在views/layouts/main.handlebars默认布局文件 - 确认本地MongoDB服务已经正常启动,否则mongoose连接超时会导致服务无响应
- 启动Node服务后查看终端输出,确认没有端口占用报错,8080端口没有被其他软件占用
- 访问时确认地址为
http://localhost:8080,不要使用https协议或者错误端口
内容的提问来源于stack exchange,提问作者kaynan felipe rodrigues vieira
相关产品推荐
相关产品推荐

