【问题标题】:How to pass of node.js to html?如何将 node.js 传递给 html?
【发布时间】:2018-09-14 16:41:56
【问题描述】:

所以,我正在使用 node.js 来使用 IBM Cloud 的一个 API。我有这段代码,我可以用它来可视化响应,但是我需要将这个“res.send”传递给 HTML。那么,我该怎么做呢?

这是我在 Node.js 中的代码。谢谢!

var express = require('express');
var path = require('path');
var app = express();


app.listen(2000, function () {
  console.log(' Watson!');
});

//---------------

app.get('/', (req, res) => {

//-------------Watson
var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');

var tone_analyzer = new ToneAnalyzerV3({
  username: '',
  password: '',
  version_date: '2017-09-21',
  accept_language: 'es',
  tone_name: 'es'
});

var params = {
  'tone_input': require('./tone.json'),
  'content_type': 'application/json',
  'content_language' : 'en',
  'accept_language' : 'es'
};

tone_analyzer.tone(params, function(err, response) {
  if (err){
    console.log('error:', err);
    res.send(err);
  }
  else{

    res.render('index.html');
    res.send({"Hi! I'm Waton and I can see:":response.document_tone.tones[0].tone_name});
    console.log(JSON.stringify(response, null, 2));
}
  });

});

【问题讨论】:

  • res.send 向您的客户端应用程序发送 JSON 响应。您客户的应用程序会显示它。
  • 不清楚您要完成什么。如果您想在发送数据之前将数据插入index.html,那么您通常会使用模板引擎,您会将 HTML 模板和数据传递给模板引擎,模板引擎会根据您的模板设计插入数据。您不能同时调用res.render()res.send()。只有您呼叫的第一个会发送任何内容。

标签: javascript json node.js ibm-cloud tone-analyzer


【解决方案1】:

我认为您想要这种呈现视图并将局部变量传递给视图的格式

res.render(view [, locals] [, callback])

Here's a good example

【讨论】:

    【解决方案2】:

    您的代码必须向客户端(网络浏览器)返回 HTTP 响应。因此,您有一些与可以在 Express 响应对象(在您的情况下为 res )上调用的不同功能相关的选项。有关更多信息,请参阅here

    您可以像以前一样使用res.send([body]):这将在 HTTP 响应正文中写入您创建的字符串,并附加 Tone Analyzer 返回的值。但是,这只会返回一个带有该字符串的空白页面,并且对于具有特定外观和感觉的更复杂的 Web 应用程序,这可能不是您想要的。 在这种情况下,您可以使用模板引擎将您选择的变量的值附加到页面(视图)的静态 HTML 代码中。请参阅Using template engines with Express 了解更多信息。

    请注意,无论您选择哪种解决方案,显然您只能将 HTTP 响应发送回客户端一次,因此您只能选择上述选项之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-05
      • 2018-09-10
      • 2018-01-13
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      相关资源
      最近更新 更多