Aas*_*ahu 0 javascript mongoose mongodb node.js
我运行这个脚本来使用 mongoose 连接到 MongoDB。
const mongoose = require("mongoose");
mongoose.connect("mongodb://localhost/curious", { useNewUrlParser: true });
const db = mongoose.connection;
const dbLog = (msg) => {
console.log(`[DATABASE] [SUCCESS] ${msg}`);
}
const dbLogError = (msg) => {
console.error(`[DATABASE] [ERROR] ${msg}`);
}
db.on("error", dbLogError("Database connection failure"));
db.once("open", () => {
dbLog("Database connection successful");
})
mongoose.connection.close()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
PS D:\scripts> node .\dbUtils.js
[DATABASE] [ERROR] Database connection failure
events.js:110
throw new ERR_INVALID_ARG_TYPE('listener', 'Function', listener);
^
TypeError [ERR_INVALID_ARG_TYPE]: The "listener" argument must be of type function. Received undefined
at checkListener (events.js:110:11)
at _addListener (events.js:347:3)
at NativeConnection.addListener (events.js:405:10)
at Object.<anonymous> (D:\Workspace\curious-backend\scripts\dbUtils.js:13:4)
at Module._compile (internal/modules/cjs/loader.js:1015:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1035:10)
at Module.load (internal/modules/cjs/loader.js:879:32)
at Function.Module._load (internal/modules/cjs/loader.js:724:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)
at internal/main/run_main_module.js:17:47 {
code: 'ERR_INVALID_ARG_TYPE'
}
Run Code Online (Sandbox Code Playgroud)
这个错误是什么?我该如何解决这个错误?
Stackoverflow 不允许我在没有更多文字的情况下发帖,所以,祝大家度过愉快的一天。现在是艰难时期。爱自己并照顾好自己。
看起来问题出在error监听器中,因为它期待函数。更新:
db.on("error", dbLogError("Database connection failure"));
Run Code Online (Sandbox Code Playgroud)
到:
db.on("error", () => dbLogError("Database connection failure"));
Run Code Online (Sandbox Code Playgroud)
它应该有效!