[英]How to send json object from controller to html template in node.js?
嗨,我對node.js非常陌生,請幫助我解決問題。
這是我的控制器,它具有一個搜索功能,我從server.js調用了此功能,這是從api捕獲的json對象。
我想將此對象發送到html頁面,我為此編寫了代碼。
即res.render('display',....),但給出錯誤。即undefined不是函數。
請幫助我如何從node.js中的控制器重定向帶有json對象的html模板?
var storeJSONData;
exports.Search = function(req,res){
var callback = function(error, data) {
if (error) {
// Your error handling here
console.log(error);
} else {
// Your success handling here
storeJSONData = JSON.parse(data);
res.render('display', {
jsonData: storeJSONData
});
}
我相信您沒有使用模板引擎正確設置Express。
假設您正在使用Express和Jade,然后將值(或上下文)傳遞到模板中,如下所示;
var express = require('express');
var app = express();
// assuming your Search controller is in controllers/search
var searchCtrl = require('./controllers/search');
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.get('/search', searchCtrl);
使用這樣的東西
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
要么
app.register('.html', require('jade'));
以下示例可能會有所幫助
var express = require('express'),
app = express(),
controller = require('./controllers/search');
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile ); //in case of ejs
app.register('.html', require('jade')); //in case of jade
app.post('/search',function(req,res) {
controller.Search(req,res);
});
希望能幫助到你
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.