我使用快遞,它配備了玉器模板引擎。 app.js如何在res.json和res.render同時將mongo db傳遞給angularjs?
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
每個模板,我需要有res.render
有HTML渲染頭,如果我不使用res.render
,模板/頁面將不會顯示。 路線/ index.js
router.get('/', function(req, res, next) {
res.render('index', { title: 'Bookshop' });
});
router.get('/data', function(req, res, next) {
res.render('data', { title: 'Bookshop | Categories' });
});
router.get('/items', function(req, res, next) {
res.render('items', { title: 'Bookshop | Items' });
});
在app.js我有我的MongoDB正確設置。
var mongojs = require('mongojs');
var db = mongojs('book', ['books']);
我將要實現的是將MongoDB數據庫傳遞給angular,然後在jade文件中循環。 myscript.js
app.controller('appCtrl', function ($scope, $http) {
$http.get('/data').then(function(res){
console.log(res.data);
$scope.books = res.data;
});
});
data.jade文件看起來像這樣
p(ng-repeat="item in books")
span {{item.name}}
span {{item.barcode}}
span {{item.price}}
現在我停留在如何將數據庫傳遞給myscript.js。我無法做到這一點的方式在app.js
router.get('/data', function(req, res, next) {
var db = req.db;
db.zero.find(function (err, docs) {
res.json(docs)
});
});
的原因正在使用玉模板,需要使用res.render
讓頁面顯示正確,但如果我用router.get('/data', function(req, res, next) { res.render('data', { title: 'Bookshop | Categories' }); });
我不能通過數據庫。
我知道我無法同時使用res.render和res.json。有沒有解決方案通過數據庫角?或者我必須將玉轉換爲HTML?我相信,如果我使用的html文件,我可以使用res.json
感謝
你不能兩者都做。 'res.json'只發送數據,其中'res.render'將渲染傳遞給render方法的模板。你想要什麼?你可以解釋嗎? –
我需要將DB傳遞給角度,但是如果我沒有res.render,我的頁面會出錯。看起來像只res.json可以成功發送數據庫,所以如果有辦法讓模板呈現也通過數據庫感謝 – olo
你是什麼意思將數據庫傳遞給角?我已經可以看到你正在將文件從mongo DB傳回給你的客戶端。 – Yerken