我创建了一个实现JSON文件作为数据存储的小应用程序。我试图了解MEAN,所以我试图将其转换为NODE.js应用程序。
我使用mongoimport创建了一个mongoDB导入我的JSON文件。数据库在那里并连接。当我将http://localhost:3000/api/characters放入浏览器时,它会返回所有字符的JSON。 我已经构建了一个连接字符串,需要它进入我的控制器,如下所示......
// FROM node app characters.controller.js
var dbconn = require('../data/dbconnection.js');
var characterData = require('../data/characters.json');
module.exports.charactersGetAll = function(req, res) {
var db = dbconn.get();
var collection = db.collection('characters');
// Get the documents from the collection
// Need to use to Array() as its only a cursor if you don't
collection
.find()
.toArray(function(err, docs) {
console.log("Found characters!", docs);
res
.status(200)
.json(docs);
});
//console.log('db', db);
//console.log("GET the Characters");
//console.log(req.query);
res
.status(200)
.json(characterData);
};
module.exports.charactersGetOne = function(req, res) {
var charId = req.params.id;
var thisChar = characterData[charId];
console.log("GET characterId", charId);
res
.status(200)
.json(thisChar);
};
从应用程序的非NODE版本,我在main.js文件中调用JSON数据如下:
//FROM TRADITIONAL HTML/JS application
// Get JSON and callback so JSON can be stored globally
$.getJSON('people.json', callback);
// Populate faces and names in HTML
function callback(data) {
/*optional stuff to do after success */
var $charNames = $('.char-names');
var $faceImage = $('.faces');
$.each(data, function(index, val) {
console.log("success");
/* iterate through array or object */
/* .eq() method constructs new object from one element from set */
$charNames.eq(index).text(val.name);
$faceImage.eq(index).attr('src', val.image);
//Push all JSON to array
allTheCharacters.push(val);
allTheCharactersComp.push(val);
});
}
我想问的是 - 有一种简单的方法可以在非NODE main.js文件中访问mongoDB而不是使用$ .getJSON方法,我将如何为节点字符添加/调整它。 controller.js
希望我有道理。对任何误解事先道歉。