gpt4 book ai didi

node.js - typescript - 导入模块 - 找不到模块

转载 作者:行者123 更新时间:2023-12-04 13:00:49 57 4
gpt4 key购买 nike

我在文件 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);

当我尝试将它导入到我的 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)

任何想法为什么会这样。

我试过这样做:
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)

最佳答案

快速解决方案:

使用 ts-node直接运行你的 TypeScript 文件

npm install --dev ts-node

使用以下命令启动 Node 进程:

node -r ts-node/register index.ts

确保您的 package.json应该包含以下内容:
{
"dependencies": {
"mongoose": "^5.6.10",
"typescript": "^3.5.3"
},
"devDependencies": {
"ts-node": "^8.3.0"
}
}

关于 typescript :
  • TypeScript实际上是 JavaScript 的超集(不是子集)。
    typescript
  • .ts在任何 JavaScript 环境(NodeJS、浏览器等)上运行之前,文件必须编译成 JavaScript。
  • 通常在一个 TypeScript 项目中,我们会有一个 build package.json 中的命令,这将编译您的 .ts文件到 .js文件,请跟随 start使用编译的 js 启动 Node 进程的命令文件:
  • {
    "scripts": {
    "build": "tsc index.ts",
    "start": "node index.js",
    "start:dev": "node -r ts-node/register index.ts"
    }
    }
  • 或者你可以运行 .ts文件直接与 ts-node .
  • 关于node.js - typescript - 导入模块 - 找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57584088/

    57 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com