【发布时间】:2018-05-03 14:51:14
【问题描述】:
直到今天早上一直工作正常,突然我收到一个类型错误,指出 Cors is not a function
我的代码
import * as Cors from "cors";
...
const corsOptions: Cors.CorsOptions = {
allowedHeaders: ["Origin", "X-Requested-With", "Content-Type", "Accept", "X-Access-Token", "Authorization"],
credentials: true,
methods: "GET,HEAD,OPTIONS,PUT,PATCH,POST,DELETE",
origin: "*",
preflightContinue: true
};
createConnection(ormConfig).then(async connection => {
// run pending migrations
await connection.runMigrations();
// create express server
const app = express();
app.use(bodyParser.json({limit: "50mb"}));
app.use(bodyParser.urlencoded({limit: "50mb", extended: true}));
// register cors
app.use(Cors(corsOptions)); //<---error occurs here
// register all controllers
useExpressServer(app, {
routePrefix: "/api",
controllers: [
__dirname + "/controllers/**/*{.js,.ts}"
],
authorizationChecker: async (action: any, roles: string[]) => {
return JwtAuthorizationMiddleware.checkIsAuthorized(action, roles);
},
currentUserChecker: async (actions: any) => {
return JwtAuthorizationMiddleware.extractUserFromJwtToken(actions);
}
});
// start the express server
const port: number = +(process.env.PORT || 44320);
app.listen(port, (err: Error) => {
console.log(`App listening on port ${port}`);
console.log("Press Ctrl+C to quit.");
});
}).catch(error => console.error("TypeORM connection error: ", error));
cors 和 Node 的当前版本
cors: "^2.8.4"
Node: v8.4.0
最近所做的唯一更改是在星期五我包含以下软件包时
multer: "^1.3.0"
@google-cloud/datastore: "^1.1.0"
@google-cloud/storage: "^1.4.0"
直到今天早上一切正常,在 gcloud 上部署了相同的版本,并且这有效,所以我有点困惑为什么我突然收到这个错误以及可能是什么原因。
非常感谢任何帮助
【问题讨论】:
-
您是否尝试过类似的方法:
app.use(Cors.cors(corsOptions));。怀疑它是否有任何区别,但我假设cors可能是许多其他功能的一部分。 -
我试过了,我什至试过
rm -rf node_modules然后重新安装包并得到同样的错误
标签: node.js typescript express cors