use*_*od2 9 node.js typescript
我的文件中有这个架构data.ts
import mongoose from "mongoose";
const Schema = mongoose.Schema;
const DataSchema = new Schema(
{
id: Number,
message: String,
},
{ timestamps: true }
);
module.exports = mongoose.model('Data', DataSchema);
Run Code Online (Sandbox Code Playgroud)
当我尝试将其导入到我的 index.js 中时:
const Data = require('./data');
我不断看到这个错误:
internal/modules/cjs/loader.js:584
throw err;
^
Error: Cannot find module './data'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:582:15)
at Function.Module._load (internal/modules/cjs/loader.js:508:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
Run Code Online (Sandbox Code Playgroud)
任何想法为什么会这样。
我尝试过这样做:
export const data = mongoose.model('Data', DataSchema);
然后导入import { data as Data } from './data'
但这也会返回以下错误:
import { data as Data } from './data'
^
SyntaxError: Unexpected token {
at new Script (vm.js:80:7)
at createScript (vm.js:274:10)
at Object.runInThisContext (vm.js:326:10)
at Module._compile (internal/modules/cjs/loader.js:664:28)
Run Code Online (Sandbox Code Playgroud)
小智 4
用于ts-node
直接运行 TypeScript 文件
npm install --dev ts-node
Run Code Online (Sandbox Code Playgroud)
使用以下命令启动节点进程:
node -r ts-node/register index.ts
Run Code Online (Sandbox Code Playgroud)
确保您package.json
应该包含类似以下内容:
{
"dependencies": {
"mongoose": "^5.6.10",
"typescript": "^3.5.3"
},
"devDependencies": {
"ts-node": "^8.3.0"
}
}
Run Code Online (Sandbox Code Playgroud)
TypeScript
实际上是 JavaScript 的超集(而不是子集)。
.ts
文件必须先编译为 JavaScript,然后才能在任何 JavaScript 环境(NodeJS、浏览器等)上运行。
通常在 TypeScript 项目中,我们会build
在 中 有一个命令package.json
,它将您的.ts
文件编译成.js
文件,后面跟着一个start
命令来启动带有编译js
文件的节点进程:
{
"scripts": {
"build": "tsc index.ts",
"start": "node index.js",
"start:dev": "node -r ts-node/register index.ts"
}
}
Run Code Online (Sandbox Code Playgroud)
.ts
运行文件。 归档时间: |
|
查看次数: |
23508 次 |
最近记录: |