Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在从CSV文件插入mongooseDB之前检查对象字段是否为空-Nodejs_Node.js_Database_Csv_Parsing_Mongoose - Fatal编程技术网

Node.js 如何在从CSV文件插入mongooseDB之前检查对象字段是否为空-Nodejs

Node.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, 应插入前两行,但不能插入最后一行,因为缺少名称,这是必填字段。因此,在解析每个字段时,基本上都需要检查它是否为

我的代码工作正常,我想添加一些错误检查,以确保没有带有空字段的对象可以插入数据库。我在使那个部件正常工作方面遇到了一些困难。数据来自本地csv文件,如下所示:

tempcv.csv

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'])
。添加要检查的其他键