我是Angular JS和Node JS的新手。我在服务器端有几个JSON文件(语言翻译)。根据客户端请求,我需要检索JSON文件的数据。如果用户请求法语,我需要检索该特定JSON文件的数据。这是我基于搜索尝试的。它不起作用。有人可以用正确的方法帮助我吗?
function getTranslations (
request /* : Request<null, {
nextToken?: string
}, {}> */,
response /* : Object */
) {
request.headers = request.headers || {}
return authentication.authenticate(request.headers.authorization)
.then((tokenPayload) => authorisation.authorise(tokenPayload.username, permissions.TRANSLATE))
.then((authorised) => {
if (!authorised) {
return Promise.reject(boom.forbidden('Message'))
}
const options = {
url: 'files/translations/',
method: 'GET',
headers: {
'Accept': 'application/json',
'Accept-Charset': 'utf-8',
}
};
app.get("/:getValue", function(req, res) {
request(options, function(err, response, body) {
var json = JSON.parse(body);
console.log(json);
res.json(request.json)
});
});
app.listen(3000, function() {
console.log("My API is running...");
});
})
}
答案 0 :(得分:1)
嗯,有很多方法可以解决这个问题。我会对你的问题做一些假设,但不清楚。首先,我假设有很多json文件,如en.json用于英语,fr.json用于法语等。
现在,如果用户请求“英语”,他应该获取en.json的数据。对于fr.json也一样。
您可以使用以下内容创建名为translation.js
的文件:
module.exports = {
ENGLISH: require('./en.json'),
FRENCH: require('./fr.json')
};
然后在您的路由器中,您可以根据传递的参数发送数据:
//app.js
var translation = require('./translation.js');
app.get(/:value, (req, res) => {
if (req.params.value === 'french') {
return res.status(200).json(translation.FRENCH);
}
return res.status(200).json(translation.ENGLISH);
});
或者你可以使用i18n包 - https://github.com/mashpie/i18n-node