簡體   English   中英

如何將json對象從控制器發送到node.js中的html模板?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM