使用打字稿播种猫鼬(MongoDB)数据库

问题描述 投票:0回答:2

有很多项目可以帮助使用 NodeJS 为 MongoDB 提供种子,但没有一个是原生的 TypeScript。通过 TypeScript 以编程方式播种数据的最佳方式是什么?

typescript mongoose seeding
2个回答
1
投票

我目前正在研究它,我有一个看起来像这样的 seederScript

require("dotenv").config();

import { ProductsData } from "./data/products"; //dummy data
import connectDB from "./config/db";
import Product from "./models/product";

connectDB();

const importData = async (): Promise<void> => {
  try {
    await Product.deleteMany({});

    await Product.insertMany(ProductsData);

    console.log("Data Import Success");

    process.exit();
  } catch (error) {
    console.error("Error with data import", error);
    process.exit(1);
  }
};

importData();


当我尝试使用节点

node src/seederScript
运行此脚本时,我收到此错误
Cannot find module... 
。我遇到了很多不同的错误,但是我尝试了,但我不知道出了什么问题


0
投票

您需要先构建项目,然后运行种子文件的

.js
版本。以下是如何使用
package.json
中的脚本进行设置的示例:

  "scripts": {
    "dev": "nodemon --exec ts-node './src/server.ts'",
    "build": "rm -rf dist/ && tsc --project './tsconfig.build.json'",
    "start": "pnpm build && NODE_ENV=production node --trace-warnings './dist/server.js'",
    "watch": "tsc --project './tsconfig.build.json' --watch",
    "db:seed": "pnpm build && node './dist/db/seed-database.js'",
    "db:clear": "pnpm build && node './dist/db/seed-database.js -c'", 
...
© www.soinside.com 2019 - 2024. All rights reserved.