Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js转换器_Javascript_Html_Node.js - Fatal编程技术网

Javascript Node.js转换器

Javascript Node.js转换器,javascript,html,node.js,Javascript,Html,Node.js,我正在尝试使用Node.JS为我的前端网页创建后端。该网页使用谷歌翻译API并翻译用户的单词。目前,当我将单词和语言硬编码到/从时,我能够让它工作。我想做的是检索他们输入的单词和他们想翻译的语言 来自前端的代码 函数translateWord(){ var url='1〕http://localhost:8085'; var端点='/translate'; var fromLang=document.getElementById(“fromLang”).value; var toLang=do

我正在尝试使用Node.JS为我的前端网页创建后端。该网页使用谷歌翻译API并翻译用户的单词。目前,当我将单词和语言硬编码到/从时,我能够让它工作。我想做的是检索他们输入的单词和他们想翻译的语言

来自前端的代码

函数translateWord(){
var url='1〕http://localhost:8085';
var端点='/translate';
var fromLang=document.getElementById(“fromLang”).value;
var toLang=document.getElementById(“toLang”).value;
var word=document.getElementById(“wordInput”).value;
var-payload={“word”:word,“from”:fromLang,“to”:toLang};
控制台日志(有效载荷);
var http=new XMLHttpRequest();
http.open(“POST”,url+endpoint,true);
setRequestHeader(“内容类型”、“应用程序/json”);
http.onreadystatechange=函数(){
var DONE=4;//4表示请求已完成。
var OK=200;//200表示成功返回。
if(http.readyState==DONE&&http.status==OK&&http.responseText){
var reply=http.responseText;
document.getElementById(“主体”).innerHTML=reply;
}
};
var params=JSON.stringify(有效负载);
//发送请求
http.send(params);
}

翻译演示
翻译演示
字:

发件人: 英语 法语 西班牙的 俄语 致: 英语 法语 西班牙的 俄语

翻译

此处翻译


默认情况下,ExpressJS将无法解析JSON post数据。要解决此问题,可以使用模块

安装它:

npm i -S body-parser
并在代码中这样使用它:

var express = require('express');
var bodyParser = require('body-parser'); // <----------------------------
var jsonParser = bodyParser.json();      // <----------------------------
var router = express.Router();
var cors= require('cors');
router.use(cors());
router.post('/translate', jsonParser, function (req, res) // <-----------
{
    /* ... */
});

module.exports = router;

我的猜测是JSON数据无法读取。我通常用这个。在您的项目中安装它:
npmi-S body parser
,添加
constbodyparser=require('body-parser')
在JS的顶部,创建一个JSON解析器实例:
const jsonParser=bodyParser.JSON()在您的路由之前,并像这样声明您的路由:
router.post('/translate',jsonParser,function…
。然后你应该能够访问你的JSON属性,但你的最后一个代码片段是错误的。它应该是
var word=req.body.word;…
。告诉我这对你是否有效谢谢你,我回家后会试试。嘿,伙计,我试过了,成功了。我只是想说谢谢你很高兴我能帮上忙!我把它作为一个答案贴了出来
var word = req.body.word;
var json = {
    from: req.body.from,
    to: req.body.to
};