【发布时间】:2014-03-13 15:08:16
【问题描述】:
我正在从事一个构建 Web 应用程序并自学 node.js 的个人项目。我正在处理的部分涉及上传 CSV 文件,将 CSV 数据更改为 JSON 对象并将其保存在 mongodb 的字段中
使用猫鼬我已经定义了这个模型。我正在使用Robomongo 查看数据库的内容,我可以看到电子邮件和密码字段没有问题
var userDataModel = new schema({
email: {
type: String,
required: true,
unique: true,
validate: [validator.email, 'Not a valid email address!']
},
hashedPassword: {
type: String,
required: true,
validate: [checkLength, 'The Password is too short! Passwords must be at least '+REQ_PASS_LENGTH+' characters!']
},
savedGraphs:{},
uploadedFiles:{}
})
以下是我编写的一个文件处理模块,用于在路由处理来自包含 csv 文件的表单的 post 请求时使用。
var Converter = require("csvtojson").core.Converter
var currentdate = new Date()
exports.verifyFileTypeCSV = verifyFileTypeCSV
exports.saveFileDataCSV = saveFileDataCSV
function verifyFileTypeCSV(fileType){
if(fileType!='application/csv'){
return false
}
else{
return true
}
}
function saveFileDataCSV(file, username, password, model){
model.findOne({ email : username },
function(err, user) {
if (err){
console.log('err')
}
if (!user){
console.log('no user found!')
}
else{
var csvConverter = new Converter()
csvConverter.on("end_parsed",function(jsonObj){
jsonObj.date = currentdate.getDate()
user.uploadedFiles = jsonObj
})
csvConverter.from(file)
}
})
}
所有代码似乎都在执行,我正在做与保存用户名/密码完全相同的事情,但是一旦我运行它并检查数据库,userModel 将不会包含解析的 CSV 数据。我已经将数据打印到控制台等,所以它被正确解析,这不是我的问题。
附言
这是我目前正在使用的代码,因此 if/else 部分只有控制台语句,没有其他内容。
【问题讨论】:
-
这里缺少很多东西。我没有看到 user.save() 语句。你有吗?
标签: javascript node.js mongodb express mongoose