以前一直用idea开发Java项目,最近团队要开发一个nodejs项目,有的人用的是VSCode,而我不想换开发工具了,幸好idea有nodejs插件,安装完以后导入项目即可,电脑上一定要提前安装好nodejs环境,安装好以后,idea的nodejs插件就会自动找到本地node安装路径,自动配置好。项目采用nodejs+typescript+express。
项目启动前,请先执行 npm install 一下,相当于Java的mvn install,加载依赖的。我的启动类里有如下代码
app.get('/', (req, resp) => { resp.render('index', { username: 'test' }); }); student_1.default.initRoute(app); const server = app.listen(8000, "localhost", () => { console.log("demo startup, url: http://localhost:8000"); });
启动以后,我访问 http://localhost:8000,按理会映射到 index.html页面,但是却报错了:
Error: template not found: index.html
at createTemplate (D:\workspace\demo\node_modules\nunjucks\src\environment.js:272:15)
at next (D:\workspace\demo\node_modules\nunjucks\src\lib.js:282:7)
at handle (D:\workspace\demo\node_modules\nunjucks\src\environment.js:311:11)
at D:\workspace\demo\node_modules\nunjucks\src\environment.js:321:9
at next (D:\workspace\demo\node_modules\nunjucks\src\lib.js:280:7)
at Object.asyncIter (D:\workspace\demo\node_modules\nunjucks\src\lib.js:286:3)
at Environment.getTemplate (D:\workspace\demo\node_modules\nunjucks\src\environment.js:303:9)
at Environment.render (D:\workspace\demo\node_modules\nunjucks\src\environment.js:342:10)
at NunjucksView.render (D:\workspace\demo\node_modules\nunjucks\src\express-app.js:22:9)
at tryRender (D:\workspace\demo\node_modules\express\lib\application.js:640:10)
上面的启动方式我是在启动类(在这里为js文件)上右键"run app.js";然后我换一种方式启动,例如在idea控制台有个Terminal,这里相当于cmd命令行,我输入D:\nodejs\node.exe D:\workspace\demo\build\app.js 启动以后,访问却是正常的。、
可见上面那种启动方式的配置有问题,导致映射路径错误,最后打开运行时配置“Edit Configurations...”成功定位问题。如下所示为错误的配置:
看到了吗,第一个红框本应该是项目根目录,但是这里确是编译后的目录,怪不得找不到映射路径
正确配置如下: