Node.js 如何在从CSV文件插入mongooseDB之前检查对象字段是否为空-Nodejs
我的代码工作正常,我想添加一些错误检查,以确保没有带有空字段的对象可以插入数据库。我在使那个部件正常工作方面遇到了一些困难。数据来自本地csv文件,如下所示: tempcv.csvNode.js 如何在从CSV文件插入mongooseDB之前检查对象字段是否为空-Nodejs,node.js,database,csv,parsing,mongoose,Node.js,Database,Csv,Parsing,Mongoose,我的代码工作正常,我想添加一些错误检查,以确保没有带有空字段的对象可以插入数据库。我在使那个部件正常工作方面遇到了一些困难。数据来自本地csv文件,如下所示: tempcv.csv name, address, ID, contactInfo bob, 214 elm, 123, email joe, 817 beach, 321, email ,45 hollywood,456, 应插入前两行,但不能插入最后一行,因为缺少名称,这是必填字段。因此,在解析每个字段时,基本上都需要检查它是否为
name, address, ID, contactInfo
bob, 214 elm, 123, email
joe, 817 beach, 321, email
,45 hollywood,456,
应插入前两行,但不能插入最后一行,因为缺少名称,这是必填字段。因此,在解析每个字段时,基本上都需要检查它是否为空
这是我的密码
dbparser.js
const mongoose = require("mongoose");
const passport = require("passport");
const csvtojson = require("csvtojson");
const router = require("express").Router();
const userSchema= new mongoose.Schema({
name: String,
address: String,
ID: String,
contactInfo: String
});
const userModel= mongoose.model("User");
const async = require('async');
csvtojson()
.fromFile("TempCSV.csv")
.then(csvData => {
async.eachSeries(csvData,(data,callback) => {
let entity = {
name: data.name,
address: data.owner,
ID: data.ownerID,
};
userModel.create(entity, function(err)
{
if(err) return callback(err);
return callback(null);
})
},
(err) => {
if(err) console.log(err);
console.log("users are successfully imported!!!");
});
});
我认为添加constuserschema会阻止它添加空字段,但事实并非如此。
任何帮助都将不胜感激。您可以使用另一个函数来检查所传递对象的空性。如果
obj
具有所有键
具有真实值,则返回true
,否则返回false
功能键(obj,键){
返回密钥。每个(密钥=>!!obj[key])
}
然后在插入数据库之前检查对象。我得到一个错误:未处理的拒绝引用错误:未定义键,当我尝试此方法时,
键
将是所需键的数组。像这样调用函数-haskey(数据,['name','address'])
。添加要检查的其他键