我在我的快速应用中不断收到此错误:
/home/ubuntu/workspace/egyplaces/routes/places.js:121
Place.findById(req.params.id, async function(err, place){
^^^^^
SyntaxError: missing ) after argument list
我已三重检查,在任何地方都找不到任何缺少的“)”。这是整个路线的代码。
router.put("/places/:id", middleware.checkPlaceOwnership, upload.single("image"), function(req, res) {
Place.findById(req.params.id, async function(err, place){
if(err) {
req.flash("error", "Place not found.");
res.redirect("/places");
} else {
if(req.file) {
try {
await cloudinary.v2.uploader.destroy(place.imageId);
var result = await cloudinary.v2.uploader.upload(req.file.path);
place.imageId = result.public_id;
place.image = result.secure_url;
} catch(err) {
req.flash("error", err.message);
return res.redirect("back");
}
}
place.name = req.body.place.name;
place.address = req.body.place.address;
place.description = req.body.place.description;
place.save();
req.flash("success", "Successfully updated!");
res.redirect("/places/" + req.params.id);
}
});
});
答案 0 :(得分:1)
您的Node.js版本<7.6,不支持async/await
如果您想使用async/await
,请更新您的Node.js。
或者您可以使用.then
的承诺(不需要async/await
)。
答案 1 :(得分:1)
我要生气了。我的节点版本为v13.14.0,并且出现此错误。我搜索了所有可能的页面,但未找到任何解决方案。昨天,它在工作。我唯一更改的是安装电容器(https://capacitorjs.com/)。但是,在安装之后,我做了一个@Configuration
public class ConfigurationClass {
@Bean
@Inject
public PlatformTransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean
@Inject
public DataSource dataSource() {
// setting config properties here
return new HikariDataSource(config);
}
@Bean
@Inject
public Repo1 repo1(JDBCTemplate template) {
return new Repo1(template);
}
@Bean
@Inject
public Repo2 repo2(JDBCTemplate template) {
return new Repo2(template);
}
@Bean
@Inject
public Repo3 repo3(JDBCTemplate template) {
return new Repo3(template);
}
@Bean
@Inject
public XService XService(Repo1 repo1, Repo2 repo2, Repo3 repo3) {
return new XService(repo1, repo2, repo3);
}
@Bean
@Inject
public YService YService(XService xService) {
return new YService(xService);
}
}
,它仍然有效!
经过一些尝试,我设法解决了它。发生这种情况的原因是模块电容器安装了其他版本的electronicjs(我不知道为什么在安装电容器后不会立即引发此错误),并且当我升级软件包(electronjs)时它起作用了。似乎此错误不仅取决于节点。