如何用es6方式导入mongoose-long插件

How to import mongoose-long plugin with es6 way

我想将以下导入语法转换为 es6 导入语法

const mongoose = require('mongoose')
require('mongoose-long')(mongoose);
const {Types: {Long}} = mongoose;

我通常不会对模块使用 ES6 语法,所以我查阅了这篇似乎是正确的文章:https://codeburst.io/understanding-es6-modules-import-export-syntax-in-javascript-6c01f20cead3

对于你的示例,这似乎对我有用(在我的调试器中,我看到变量 Long 获得一个值,我可以用它来创建一个 Long 值)

import mongoose from 'mongoose'
import mongooseLong from 'mongoose-long'
mongooseLong(mongoose)
const {Types: {Long}} = mongoose;
const myVal = new Long(0, 0xffff)
console.log(myVal)

唯一棘手的步骤是处理 require('mongoose-long')(mongoose)。我引入了变量 mongooseLong 来解决这个问题。

为了使其可执行,我需要将以下内容添加到我的 package.json(链接文章中提到了这一点):

"type": "module"

当我运行这个程序时,我看到以下内容

> node index.js 
Long { _bsontype: 'Long', low_: 0, high_: 65535 }