我正在尝试运行节点服务器。我使用Express和Typescript以及VSCode作为编辑器。如果我编译并尝试运行我的app.js,我会收到此错误:
> Error: Cannot find module 'on-finished'
> at Function.Module._resolveFilename (module.js:440:15)
> at Function.Module._load (module.js:388:25)
> at Module.require (module.js:468:17)
> at require (internal/module.js:20:19)
> at Object.<anonymous> (C:\nodeProjects\node_modules\express\node_modules\finalhandler\index.js:16:18)
> at Module._compile (module.js:541:32)
> at Object.Module._extensions..js (module.js:550:10)
> at Module.load (module.js:458:32)
> at tryModuleLoad (module.js:417:12)
> at Function.Module._load (module.js:409:3)
我的app.ts:
/// <reference path="_all.d.ts" />
import * as express from "express";
var app = express();
app.get('/', function (req, res) {
res.send('Hello World!');
});
app.listen(3000, function () {
console.log('Listening on port 3000!');
});
我的tsconfig:
{
"version": "1.7.5",
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "../cmpl"
}
}
我的项目结构:
- .vscode/
- cmpl/
- src/
-- node_modules/
-- public/
-- routes/
-- typings/
-- views/
-- _all.d.ts
-- app.ts
-- package.json
-- tsonfig.json
我不知道问题出在哪里。如果我正在查看node_modules文件夹。该模块存在。
格尔茨
答案 0 :(得分:0)
您的问题是
import * as express from "express";
我使用快递在我的应用程序上测试完全相同的行,抛出了几乎相同的错误,因此您最好使用变量,就像我一直这样,并且它从未让我失望。
var express = require('express')
应该没有任何问题。