Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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
Node.js 尝试将异步函数与npm http哈希一起使用_Node.js_Babeljs - Fatal编程技术网

Node.js 尝试将异步函数与npm http哈希一起使用

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

我正试图使用http哈希模块为我的应用程序构造一个API。我正在使用AVA作为我上一次测试的试跑者。当我运行“npm test”命令时,我在控制台中遇到以下错误:

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的文件吗?它必须在项目的根目录下?提前,谢谢