Async/Await 而非 Azure 应用服务中的 运行
Async/Await not running in Azure App Service
在我的 Azure 应用服务 Node.js 后端中,我似乎无法将 Javascript async/await 功能设置为 运行。我在应用程序设置中有 和 package.json 到 7.6 以上。 (更改为 8.9.0)
我想在此处显示的自定义 Express 路由器中使用此功能:
var express = require('express'),
bodyParser = require('body-parser');
var router = express.Router();
router.get('/', function (req, res, next) {
res.status(200).send('GET: This is a test response!');
});
router.post('/:id', async function (req, res, next) {
var context = req.azureMobile;
var newLovedOne = req.body.lovedone;
var newTie = req.body.tie;
console.log('POST: newLovedOne ', newLovedOne);
console.log('POST: newTie ', newTie);
try {
await context.tables('Tie').insert(newTie);
await context.tables('LovedOne').insert(newLovedOne);
} catch (error) {
res.status(500).send('Insert failed!');
}
});
module.exports = router;
尝试使用上述路由器启动应用会产生以下结果:
Application has thrown an uncaught exception and is terminated:
SyntaxError: missing ) after argument list
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (D:\home\site\wwwroot\app.js:12:20)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
要验证 Node.js 版本是否设置正确,您可以转到根目录并打开 iisnode.yml
文件。确保它具有正确版本的以下行:
nodeProcessCommandLine: "D:\Program Files (x86)\nodejs.9.0\node.exe"
在我的 Azure 应用服务 Node.js 后端中,我似乎无法将 Javascript async/await 功能设置为 运行。我在应用程序设置中有
我想在此处显示的自定义 Express 路由器中使用此功能:
var express = require('express'),
bodyParser = require('body-parser');
var router = express.Router();
router.get('/', function (req, res, next) {
res.status(200).send('GET: This is a test response!');
});
router.post('/:id', async function (req, res, next) {
var context = req.azureMobile;
var newLovedOne = req.body.lovedone;
var newTie = req.body.tie;
console.log('POST: newLovedOne ', newLovedOne);
console.log('POST: newTie ', newTie);
try {
await context.tables('Tie').insert(newTie);
await context.tables('LovedOne').insert(newLovedOne);
} catch (error) {
res.status(500).send('Insert failed!');
}
});
module.exports = router;
尝试使用上述路由器启动应用会产生以下结果:
Application has thrown an uncaught exception and is terminated:
SyntaxError: missing ) after argument list
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:373:25)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (D:\home\site\wwwroot\app.js:12:20)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
要验证 Node.js 版本是否设置正确,您可以转到根目录并打开 iisnode.yml
文件。确保它具有正确版本的以下行:
nodeProcessCommandLine: "D:\Program Files (x86)\nodejs.9.0\node.exe"