为什么我的文件在执行时抛出错误?

时间:2019-11-07 04:24:40

标签: node.js typescript

尝试使用命令node database.ts执行文件时出现错误 谁能告诉我我的语法出了什么问题?

文件如下:

import { Sequelize } from 'sequelize-typescript';

export const sequelize = new Sequelize({
    database : "zemit",
    dialect : "postgres",
    username : "postgres",
    password : "postgres",
    host : "localhost",
    port : 5432
});
sequelize.authenticate().then(() => {
 console.log("Connected to DB");
})
.catch((err) => {
 console.log(err);
})

错误提示:

import { Sequelize } from 'sequelize-typescript';
^^^^^^

SyntaxError: Cannot use import statement outside a module
?[90m    at Module._compile (internal/modules/cjs/loader.js:892:18)?[39m
?[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10)?[39m
?[90m    at Module.load (internal/modules/cjs/loader.js:812:32)?[39m
?[90m    at Function.Module._load (internal/modules/cjs/loader.js:724:14)?[39m
?[90m    at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)?[39m
?[90m    at internal/main/run_main_module.js:17:11?[39m

2 个答案:

答案 0 :(得分:1)

只需用“ requires”替换所有“ imports”。

我有类似的问题,可以在线搜索,但没有任何解决方法。

然后我将import替换为require,并且有效。

答案 1 :(得分:1)

node运行时系统不支持将Typescript file文件作为.js文件运行。如果您使用的是Typescript,则必须使用命令.ts.js文件转换为tsc文件(需要安装Typescript),然后运行生成的{{1 }}文件(使用.js(而不是node database.js

或者您可以使用ts-node-对Node.js执行TypeScript和REPL,然后可以使用node database.ts命令直接“运行” .ts文件。