【问题标题】:nodeJS with ts : module declares component locally, but it is not exported带 ts 的 nodeJS :模块在本地声明组件,但未导出
【发布时间】:2020-06-08 15:45:33
【问题描述】:

在我的 nodeJS 应用程序中,我有一个模型和播种器文件夹,我创建了一个这样的 address.model.ts 架构:


export {};
const mongoose = require('mongoose');

const addressSchema = new mongoose.Schema({
  street: {
    type: String,
    required: true,
  },
  number: {
    type: String,
    required: true,
  },
  city: {
    type: String,
    required: true,
  },
  codePostal: { type: mongoose.Schema.Types.ObjectId, ref: 'codePostal'  },
  country: {
    type: String,
    required: true,
  },
  longitude: {
    type: Number,
    required: false,
  },
  latitude: {
    type: Number,
    required: false,
  }
});

const ALLOWED_FIELDS = ['id', 'street', 'number','city', 'codePostal', 'country'];


/**
 * @typedef Address
 */
const Address = mongoose.model('Address', addressSchema);
Address.ALLOWED_FIELDS = ALLOWED_FIELDS;
module.exports = Address;

和addresses.ts这样的种子:

import faker from 'faker'
import {
  Address
} from '../src/api/models/address.model'

export const seedAdresses = async () => {
  try {
    const quantity = 10
    const adresses = []

    for (let i = 0; i < quantity; i++) {
      adresses.push(
        new Address({
          street   : faker.address.streetName(),
          number   : faker.address.streetAddress(),
          city     : faker.address.city(),
          country  : faker.address.country(),
          longitude: faker.address.longitude(),
          latitude : faker.address.latitude(),

        })
      )
    }

  } catch (err) {
    console.log(err);
  }
}

seedAdresses()

导入地址时出现错误:

module '"../src/api/models/address.model"' 在本地声明'Address',但不会导出。 我不明白为什么它没有被导出,尽管 module.exports = Address;存在于我的架构中!

【问题讨论】:

    标签: node.js typescript model export seed


    【解决方案1】:

    问题是您正在使用带有 ES6 导入/导出的 CommonJS 导出,在 address.model.ts 中使用 export { Address }; 而不是 export {};

    您还应该考虑使用 import { Schema, model } from "mongoose" 以与 ES6 保持一致。

    【讨论】:

      猜你喜欢
      • 2020-08-27
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      • 2022-11-10
      • 2016-12-06
      • 2018-10-13
      相关资源
      最近更新 更多