我是Javascript的新手我试图将json文件存储到数据库中。 但它无法正常工作我收到以下错误:
$ node db.js
module.js:339
throw err;
^
Error: Cannot find module './commits.json'
at Function.Module._resolveFilename (module.js:
at Function.Module._load (module.js:287:25)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object.<anonymous> (c:\Documents and Setting e\db.js:8:10)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442
at Module.load (module.js:356:32)
at Function.Module._load (module.js:311:12)
at Function.Module.runMain (module.js:467:10)
下面是代码,我已经安装了sqlite节点模块,我可以使用sql查询手动插入数据,我正在努力弄清楚如何将数据从json文件加载到数据库中。 json文件是git提交的日志
var fs = require("fs");
var file = process.env.CLOUD_DIR + "test.db";
var exists = fs.existsSync(file);
var jsonfile = {
key: "myvalue"
};
myJson = require("./commits.json");
if(!exists) {
console.log("Creating DB file.");
fs.openSync(file, "w");
}
var sqlite3 = require("sqlite3").verbose();
var db = new sqlite3.Database(file);
db.serialize(function() {
if(!exists) {
db.run("CREATE TABLE Stuff (thing TEXT)");
}
var jsonString = escape(JSON.stringify(myJson));
db.transaction(function(tx){
tx.executeSql('INSERT OR REPLACE INTO Stuff(md5, json, expires) VALUES ("'+hash+'", "'+jsonString+'","'+expireStamp+'")');
},function(tx,error){
console.log(JSON.stringify(tx.message));
console.log(JSON.stringify(error));
},function(){
});
db.close();
答案 0 :(得分:0)
myJson = require("./commits.json");
导致您的错误。您没有正确读取文件,而是尝试将其作为节点模块包含。
你想做更像
的事情// async read
fs.readFile('commits.json', function (err, data) {
if (err) {
return console.error(err);
}
console.log("File content: " + data.toString());
// now save to db
});
详细了解File System