Res.Render在node.js中不是函数错误

当我尝试运行我的node.js代码时,在Windows 10命令提示符中出现“res.render不是函数错误”。

什么是造成这个错误,我怎样才能摆脱它?

这是我的.js文件:

/*eslint-env node*/ //------------------------------------------------------------------------------ // node.js starter application for Bluemix //------------------------------------------------------------------------------ // HTTP request - duas alternativas var http = require('http'); var request = require('request'); // cfenv provides access to your Cloud Foundry environment // for more info, see: https://www.npmjs.com/package/cfenv var cfenv = require('cfenv'); //chama o express, que abre o servidor var express = require('express'); // create a new express server var app = express(); // serve the files out of ./public as our main files app.use(express.static(__dirname + '/public')); // get the app environment from Cloud Foundry var appEnv = cfenv.getAppEnv(); // start server on the specified port and binding host app.listen(appEnv.port, '0.0.0.0', function() { // print a message when the server starts listening console.log("server starting on " + appEnv.url); }); app.get('/home1', function(res){ http.get('http://developers.agenciaideias.com.br/cotacoes/json', function(res){ var body = ''; res.on('data', function(chunk){ body += chunk; }); res.on('end', function(){ var json = JSON.parse(body); var cotacao = json["bovespa"]["cotacao"]; var CotacaoDolar= json["dolar"]["cotacao"]; var VariacaoDolar=json["dolar"]["variacao"]; var CotacaoEuro=json["euro"]["cotacao"]; var VariacaoEuro=json["euro"]["variacao"]; var Atualizacao=json["atualizacao"]; res.render('cotacao.jade',{title:'Hey', message:'Sua cotação foi de'}); }); }); }); 

错误: 错误Scrren

我没有看到哪些玉被挂在你的快递应用程序。 为了使res.render()了解关于jade模板,你必须将jade处理程序挂接到Express。

如果玉器安装正确,你应该可以做到这一点,将其挂接到Express:

 app.set('view engine', 'jade'); 

快递文档为此 。


另外,你已经在res的相同范围内命名了两个参数。 更改http.get()的第二个名称,以便您仍然可以访问实际的Express响应对象的更高范围的名称。

 app.get('/home1', function (res) { http.get('http://developers.agenciaideias.com.br/cotacoes/json', function (res2) { var body = ''; res2.on('data', function (chunk) { body += chunk; }); res2.on('end', function () { var json = JSON.parse(body); var cotacao = json["bovespa"]["cotacao"]; var CotacaoDolar = json["dolar"]["cotacao"]; var VariacaoDolar = json["dolar"]["variacao"]; var CotacaoEuro = json["euro"]["cotacao"]; var VariacaoEuro = json["euro"]["variacao"]; var Atualizacao = json["atualizacao"]; res.render('cotacao.jade', { title: 'Hey', message: 'Sua cotação foi de' }); }); }); }); 

你正在处理两组HTTP请求/响应。

你正在收到的一个:

 app.get('/home1', function(res){ 

和你正在做的一个:

 http.get('http://developers.agenciaideias.com.br/cotacoes/json', function(res){ 

…但你已经给了他们两个相同的variables名res ),所以一个人掩盖另一个,并阻止你访问它。

改变其中一个的名字。