我只是在stackoverflow的讨论中搜索我的问题,但与我的问题没有什么相似之处。因此,在这种情况下,我只想更新我的收藏集,然后使用“ Promise”模块,而不是像往常一样使用回调/匿名函数。但是当我在cmd中执行js的应用程序时出现错误。
这是我的简单代码:
df = pd.read_csv(filename, index_col=None, header=0, encoding='utf-8')
当我在cmd中执行代码时出现错误:
(节点:8600)UnhandledPromiseRejectionWarning:TypeError:无法读取 未定义的属性“集合” 在C:\ Users \ DELL \ guru99 \ 5_Promise \ app_promise.js:7:9 在 在process._tickCallback(内部/进程/next_tick.js:189:7)(节点:8600)UnhandledPromiseRejectionWarning:未处理的承诺 拒绝。该错误是由抛出异步内部引起的 没有捕获块或拒绝承诺 未使用.catch()处理。 (拒绝ID:1)(节点:8600)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的Node.js进程。
那么,上面的代码中是否有错误的代码?
感谢您的帮助... 对不起,我的英语不好
答案 0 :(得分:0)
只有在连接到数据库时出错,db
变量才可以不确定。
您需要检查并修复显示的任何错误。您还可以共享错误
var Promise = require('promise'); // use the 'promise' module
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url)
.then(function(err, db) {
if (err) {
return throw err; // Check the error
}
db.collection('Employee').updateOne({
"EmployeeName": "Jeffrey"
}, {
$set: {
"EmployeeName": "Jeffrey Scurgs"
}
});
});
答案 1 :(得分:0)
您的方法是正确的,但您错过了一件事。
当您不提供回调参数时,mongo ORM将返回一个承诺。这是更正的代码:
MongoClient.connect(url)
.then(function(db) { // <- db is first argument
db.collection('Employee').updateOne({
"EmployeeName": "Jeffrey"
}, {
$set: {
"EmployeeName": "Jeffrey Scurgs"
}
});
})
.catch(function (err) {})
答案 2 :(得分:0)
这是迄今为止最好的答案... uday singh
发布MongoClient.connect(url)
.then(function(db) { // <- db is first argument
db.collection('Employee').updateOne({
"EmployeeName": "Jeffrey"
}, {
$set: {
"EmployeeName": "Jeffrey Scurgs"
}
});
})
.catch(function (err) {})
之后,我想探索嵌套的Promise然后... 这里的代码...
var Promise = require('promise');
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost/EmployeeDB';
MongoClient.connect(url)
.then(function(db) {
return db.collection('Employee').insertOne({
Employeeid: 4,
EmployeeName: "Ronan"
})
.then(function() {
return db.collection('Employee').insertOne({
Employeeid: 5,
EmployeeName: "Teabouf"
})
})
}).catch(function(err) {
console.error(err);
});