节点脚本没有完成
node script not getting completed
我有一个简单的脚本可以将数据转储到数据库中,我将它与 npm 脚本结合使用。我试图在我的节点应用程序服务器启动之前将数据转储到数据库中。但是转储脚本永远不会完成,因此服务器启动脚本不会启动。这是我的转储脚本 -
const mongodb = require('mongodb')
, fs = require('fs')
, MongoClient = mongodb.MongoClient
, client = new MongoClient(`mongodb://localhost:27017/admin`, { useUnifiedTopology: true })
, docs = fs.readFileSync(`${process.cwd()}/app/scripts/records.json`)
client.connect().then(cl => {
const dbObj = cl.db('dumpdb')
dbObj.collection(`loc_biz_hrs`).insertMany(JSON.parse(docs)).then(result => {
console.log(`${result.insertedCount} records inserted`)
})
})
这是我尝试使用 npm 脚本执行它的方式 -
"scripts": {
"start": "node app/scripts/records.js && nodemon --exec babel-node index.js",
"test": "test"
}
它只显示在终端 35755 records inserted
中并卡在那里并且不执行脚本的 index.js
部分。
尝试同时使用 npm 包
npm i 同时
"scripts": {
"start": "react-scripts start",
"dev": ""concurrently \"node app/scripts/records.js\" \"nodemon --exec babel-node index.js\""
}
您没有使用 cl.close()
关闭连接,所以试试这个:
const mongodb = require('mongodb')
, fs = require('fs')
, MongoClient = mongodb.MongoClient
, client = new MongoClient(`mongodb://localhost:27017/admin`, { useUnifiedTopology: true })
, docs = fs.readFileSync(`${process.cwd()}/app/scripts/records.json`)
client
.connect()
.then(cl => {
const dbObj = cl.db('dumpdb');
dbObj
.collection(`loc_biz_hrs`)
.insertMany(JSON.parse(docs))
.then(result => {
console.log(`${result.insertedCount} records inserted`);
cl.close();
}).catch(error => {
console.log(error);
cl.close();
})
})
.catch(error => {
console.log(error);
});
我有一个简单的脚本可以将数据转储到数据库中,我将它与 npm 脚本结合使用。我试图在我的节点应用程序服务器启动之前将数据转储到数据库中。但是转储脚本永远不会完成,因此服务器启动脚本不会启动。这是我的转储脚本 -
const mongodb = require('mongodb')
, fs = require('fs')
, MongoClient = mongodb.MongoClient
, client = new MongoClient(`mongodb://localhost:27017/admin`, { useUnifiedTopology: true })
, docs = fs.readFileSync(`${process.cwd()}/app/scripts/records.json`)
client.connect().then(cl => {
const dbObj = cl.db('dumpdb')
dbObj.collection(`loc_biz_hrs`).insertMany(JSON.parse(docs)).then(result => {
console.log(`${result.insertedCount} records inserted`)
})
})
这是我尝试使用 npm 脚本执行它的方式 -
"scripts": {
"start": "node app/scripts/records.js && nodemon --exec babel-node index.js",
"test": "test"
}
它只显示在终端 35755 records inserted
中并卡在那里并且不执行脚本的 index.js
部分。
尝试同时使用 npm 包 npm i 同时
"scripts": {
"start": "react-scripts start",
"dev": ""concurrently \"node app/scripts/records.js\" \"nodemon --exec babel-node index.js\""
}
您没有使用 cl.close()
关闭连接,所以试试这个:
const mongodb = require('mongodb')
, fs = require('fs')
, MongoClient = mongodb.MongoClient
, client = new MongoClient(`mongodb://localhost:27017/admin`, { useUnifiedTopology: true })
, docs = fs.readFileSync(`${process.cwd()}/app/scripts/records.json`)
client
.connect()
.then(cl => {
const dbObj = cl.db('dumpdb');
dbObj
.collection(`loc_biz_hrs`)
.insertMany(JSON.parse(docs))
.then(result => {
console.log(`${result.insertedCount} records inserted`);
cl.close();
}).catch(error => {
console.log(error);
cl.close();
})
})
.catch(error => {
console.log(error);
});