使用 Nodejs 在 Mongodb 中导入 16.9 MB 的 json 文件会引发以下错误:
Opening new mongodb connection Closing mongodb connection, force = true {
error: RangeError [ERR_OUT_OF_RANGE]: The value of "offset" is out of range。它必须 >= 0 && <= 17825792。收到 17825795
js:347:18) { code: 'ERR_OUT_OF_RANGE' } } ERROR (node:28432) UnhandledPromiseRejectionWarning: RangeError [ERR_OUT_OF_RANGE]: "offset" 的值超出范围。它必须 >= 0 && <= 17825792。在 Buffer.write (buffer.js:1007:5) 处的 serializeNumber (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:63: 处收到 17825795: 18) 在 serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:711:17) 在 serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js: 347:18) 在 serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17) 在 serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer. js:347:18) 在 serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937: 17) 在 serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18) 在 serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js: 937:17) 在 serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:347:18) (node:28432) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误要么是因为在没有 catch 块的情况下抛出了异步函数,要么是因为拒绝了一个没有用 .catch() 处理过的承诺。(rejection id: 2) (node:28432) [DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将使用非零退出代码终止 Node.js 进程。18) 在 serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17) 在 serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js: 347:18) (node:28432) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误要么是因为在没有 catch 块的情况下抛出了异步函数,要么是因为拒绝了一个没有用 .catch() 处理过的承诺。(rejection id: 2) (node:28432) [DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将使用非零退出代码终止 Node.js 进程。18) 在 serializeInto (/home/igor/node_modules/bson/lib/bson/parser/serializer.js:937:17) 在 serializeObject (/home/igor/node_modules/bson/lib/bson/parser/serializer.js: 347:18) (node:28432) UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误要么是因为在没有 catch 块的情况下抛出了异步函数,要么是因为拒绝了一个没有用 .catch() 处理过的承诺。(rejection id: 2) (node:28432) [DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将使用非零退出代码终止 Node.js 进程。这个错误要么是因为在没有 catch 块的情况下抛出了异步函数,要么是因为拒绝了一个没有用 .catch() 处理过的承诺。(rejection id: 2) (node:28432) [DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将使用非零退出代码终止 Node.js 进程。这个错误要么是因为在没有 catch 块的情况下抛出了异步函数,要么是因为拒绝了一个没有用 .catch() 处理过的承诺。(rejection id: 2) (node:28432) [DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将使用非零退出代码终止 Node.js 进程。
我想在 Mongodb 中插入数据时会发生错误:
...
const readFilePromise = promisify(fs.readFile);
const fileData: IOecdMigFile =JSON.parse(await readFilePromise(filePath, "utf8"));
await dropCollectionPromise("test_collection");
await insertPromise("test_collection",fileData);
...
export function insertPromise(
collection: string,
record: object
): Promise<void> {
return _mongoProxy
.connect()
.then((db: mongo.Db) => db.collection(collection))
.then((c: mongo.Collection) => c.insertOne(record))
.then(async (_result: any) => {
// console.log(result);
await _mongoProxy.close();
})
.catch(async (err) => {
await _mongoProxy.close(true);
console.log({ error: err }, "ERROR");
throw err;
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1136 次 |
| 最近记录: |