Node.js 尝试将异步函数与npm http哈希一起使用
我正试图使用http哈希模块为我的应用程序构造一个API。我正在使用AVA作为我上一次测试的试跑者。当我运行“npm test”命令时,我在控制台中遇到以下错误:Node.js 尝试将异步函数与npm http哈希一起使用,node.js,babeljs,Node.js,Babeljs,我正试图使用http哈希模块为我的应用程序构造一个API。我正在使用AVA作为我上一次测试的试跑者。当我运行“npm test”命令时,我在控制台中遇到以下错误: import { send } from 'micro' ^^^^^^ SyntaxError: Unexpected token import 我使用的是一个过梁,它不会给我任何错误。这里是my package.json,您可以看到我正在使用一些babel插件来传输生成器: { "name": "pos_lisa-api", "v
import { send } from 'micro'
^^^^^^
SyntaxError: Unexpected token import
我使用的是一个过梁,它不会给我任何错误。这里是my package.json,您可以看到我正在使用一些babel插件来传输生成器:
{
"name": "pos_lisa-api",
"version": "0.1.0",
"description": "LISA POS REST API",
"scripts": {
"lint": "standard",
"test": "npm run lint && ava"
},
"author": "Mauricio Cano Giraldo",
"license": "MIT",
"devDependencies": {
"ava": "^0.18.1",
"babel-eslint": "^7.1.1",
"babel-register": "^6.23.0",
"standard": "^8.6.0",
"test-listen": "^1.0.1"
},
"dependencies": {
"babel-plugin-transform-async-to-generator": "^6.22.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.22.0",
"babel-runtime": "^6.22.0",
"http-hash": "^2.0.0",
"micro": "^7.0.6",
"request": "^2.79.0",
"request-promise": "^4.1.1",
"uuid-base62": "^0.1.0"
},
"standard": {
"parser": "babel-eslint"
},
"babel": {
"presets": [
"es2015"
],
"plugins": [
"transform-runtime",
"transform-async-to-generator"
]
}
}
这是我的节点文件,在这里我得到了错误:
'use strict'
import { send } from 'micro'
import httpHash from 'http-hash'
const hash = httpHash()
hash.set('GET /:id', async function getCliente (req, res, params) {
send(res, 200, params)
})
export default async function main (req, res) {
let method = req.method
let url = req.url
let match = hash.get(`${method.toUpperCase()} ${url}`)
if (match.handler) {
try {
await match.handler(req, res, match.params)
} catch (e) {
send(res, 500, { error: e.message })
}
} else {
send(res, 404, { error: 'La ruta no fue encontrada' })
}
}
我在网上阅读,什么也没找到。请帮帮我!我会非常感激的 使用.babelrc可能会起作用。AVA只传输您想要运行的测试文件,而不传输您正在其中导入的模块。但是您可以通过要求
babel register
()来告诉AVA也传输导入的模块。因为您已经配置了babel,所以您也可以告诉它使用您的配置。将此添加到您的包.json
"ava": {
"babel": "inherit",
"require": ["babel-register"]
}
如果您想使用AVA使用的babel配置,可以省去“babel”:“inherit”,或者如果您愿意,可以定义一个完全不同的配置。但通常最好是继承您的配置。嗨,Jason,非常感谢您的回答。我是学习节点,所以这种概念对我来说是新的。babelrc是一个类似package.json的文件吗?它必须在项目的根目录下?提前,谢谢