未定义的JSON从URL api端点http : // someserver:someport / some_api_url?_var1=1
返回到Node.js / Express.js应用程序。这个未定义的JSON输入将始终具有相同的格式,并且需要通过接收代码强制转换为新的JSON对象(如下所示)。然后可以以各种方式处理新的JSON对象,包括传递给HTML。
1。){"1":"descriptive string"}
形式的JSON被强制转换为新定义的名为dataElement
的JSON对象,其中包含两个属性dataElement.dataKey
和dataElement.descriptionString
?
2。)发送回用户网络浏览器的html响应包括UI格式的dataElement.dataKey
和dataElement.descriptionString
:
Index is: 1
Description is: descriptive string
app.get('/', function (req, res) {
var url = 'http://someserver:someport/some_api_url?_var1=1'
http.get(url, function (resInner) {
var body = '';
resInner.on('data', function (chunk) {
body += chunk;
});
resInner.on('end', function () {
var fullResponse = JSON.parse(body);
// code to parse JSON into new JSON object, which is passed into HTML
var indexStr = key;
var descriptionStr = fullResponse[key];
var dataElement = {"dataKey" : key, "descriptionString" : descriptionStr};
var htmlResp = 'Index is: '+${dataElement.dataKey}+'<br> Description is: '+${dataElement.descriptionString};
res.send(htmlResp);
});
}).on('error', function (e) {
console.log("Got an error: ", e);
});
});
/home/user/nodejs_apps/express_helloworld/myapp/app.js:139
var htmlResp = 'Index is: '+${dataElement.dataKey}+'<br> Description is: '+${dataElement.descriptionString};
^
SyntaxError: Unexpected token {
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:387:25)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:142:18)
at node.js:939:3
答案 0 :(得分:1)
错误来自你的字符串连接,它似乎使用了一些无效的模板语言,true
变量,没有定义,你必须实际获得{{1等等。
尝试这种方式
var answer = prompt('what is your age');
if (answer === '') {
alert('you did not answer!');
} else if (isNaN(answer)) {
alert('please enter your age as a number');
} else if (answer >= 21) {
alert('good to go!');
} else if (answer < 21) {
alert('sorry not old enough');
}
答案 1 :(得分:0)
在此示例中,您尝试使用template strings,但是您使用错误,导致错误。这是模板字符串的格式:
`Hello World, the expression "1+2" evaluates to ${1+2}` ==> `Hello World, the expression "1+2" evaluates to 3`
模板字符串使用反引号,用于在SE处插入内联代码的内容。所以,你的问题行应该是这样的:
var htmlResp = `Index is: ${dataElement.dataKey}`<br> Description is: `${dataElement.descriptionString}`;
除了语法错误,我看不到你的代码有任何问题,但是谁知道呢? ;)
希望我能提供帮助!