Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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/2/node.js/43.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 async在express中等待_Javascript_Node.js_Express_Async Await - Fatal编程技术网

Javascript Node.js async在express中等待

Javascript Node.js async在express中等待,javascript,node.js,express,async-await,Javascript,Node.js,Express,Async Await,我正在构建一个endpoint/users,它将返回users.json文件中的内容。我正在使用aysnc/等待功能 var express = require('express'); var app = express(); var fs = require('fs'); var readFile = Promise.promisify(fs.readFile); const util = require('util'); app.get('/users', async (req, res,

我正在构建一个endpoint/users,它将返回users.json文件中的内容。我正在使用aysnc/等待功能

var express = require('express');
var app = express();
var fs = require('fs');
var readFile = Promise.promisify(fs.readFile);
const util = require('util');

app.get('/users', async (req, res, next) => {
try {
const user = await readFile('./users.json');
return eval(user);
//res.send(JSON.parse(data));
// res.json(user);
} catch (e) {
//this will eventually be handled by your error handling middleware
next(e) 
}
});
app.listen(3000,function(){
console.log("listening on port 3000");
});
这将抛出以下错误

SyntaxError:意外标记(

在Object.runInThisContext(vm.js:97:10)上的createScript(vm.js:56:10) 在Module.\u编译(Module.js:542:28)在Object.Module.\u扩展..js (module.js:579:10)在tryModuleLoad的module.load(module.js:487:32)处 (module.js:446:12)at Function.module.\u加载(module.js:438:3)at Module.runMain(Module.js:604:10)在运行时(bootstrap_node.js:389:7)在 启动(bootstrap_node.js:149:9)

我将NPM3.10.10与节点v6.11.3一起使用

有人能告诉我哪里出了问题吗?

不要打电话:

返回评估(用户);

你应致电:

res.send(JSON.parse(user));

res.send(JSON.stringify(JSON.parse(user));

如果返回对象,则使用bodyParser.json()中间件

同样,在挡块中

res.status(500.send)(“出现错误”);

并将错误记录到您的控制台

---

另外,fs.readFile接受另一个参数,即编码。使用“utf-8”。如果不使用它,它将返回一个缓冲区,而不是字符串。

而不是调用:

返回评估(用户);

你应致电:

res.send(JSON.parse(user));

res.send(JSON.stringify(JSON.parse(user));

如果返回对象,则使用bodyParser.json()中间件

同样,在挡块中

res.status(500.send)(“出现错误”);

并将错误记录到您的控制台

---


另外,fs.readFile采用另一个参数,即编码。使用“utf-8”。如果不使用它,它将返回缓冲区,而不是字符串。

。如果可能,请尝试使用较新的节点版本。

。如果可能,请尝试使用较新的节点版本。

在Node.js中,
JSON.parse
始终可用。什么是
promisify
util.promisify
?使用您发布的代码我没有发现任何错误。是的..我是说util.promisify(),但我想这并不是问题的原因。@Bergi除了util.promisify之外,还有其他代码更改吗?我仍然会收到相同的错误看起来node v6.11.3不支持
async
/
await
语法。请更新它。在node.js中,
JSON.parse
始终可用。什么是
promisify.promisify
你是说
util.promisify
?我使用你发布的代码没有任何错误。是的..我是说util.promisify(),但我想这并不是问题的根源。@Bergi除了util.promisify之外,还有其他代码更改吗?我仍然会收到相同的错误。看起来node v6.11.3不支持
async
/
await
语法。更新它。应该是版本8。Nodejs 7.5只支持带有harmony标志的async await。谢谢。它确实有效将节点版本升级到v10.13.0应该是版本8。Nodejs 7.5仅支持带有harmony标志的异步等待。谢谢。将节点版本升级到v10.13.0后,它确实起作用