Node.js问题添加软件包

时间:2018-07-28 06:43:23

标签: javascript node.js express

我已经设置了具有以下结构的节点项目

--Dockerfile
--package.json
--node_modules
--src
  --index.js

我已将package.json启动脚本设置为

"start": "node src/index.js",

这是我的index.js

require('babel/register');
require('./server.js');


import express from 'express';

let app  = express();
let PORT = 3001;

app.post('/', (req, res) => {
res.send('Hello!');
});

let server = app.listen(PORT, function () {
let host = server.address().address;
let port = server.address().port;

console.log('listening at http://%s:%s', host, port);
});

我得到的错误是

SyntaxError: Unexpected token import
at createScript (vm.js:80:10)

3 个答案:

答案 0 :(得分:0)

从np安装软件包时,请使用参数--save

ex:如果您安装Express

使用

npm install express --save

所以您的package.json将包含新添加的包

安装有进口用途:

var express = require('express');
var app = express();

解决以下问题的步骤:

  1. 从server.js中删除require('babel/register');
  2. 创建另一个名为start.js的条目文件
  3. 在start.js中,

    require('babel/register'); module.exports = require('./server.js');

结果是,server.js中的所有代码都将被寄存器动态转译。请确保您已使用.babelrc正确配置babel,其内容如下所示:

{
  "presets": ["es2015", "stage-0"]
}

答案 1 :(得分:0)

  1. 安装babel-cli
dd($test->toArray());
  1. 创建.babelrc文件并添加
npm install --save-dev babel-cli babel-preset-latest
  1. 在您的package.json中
echo '{ "presets": ["es2015"] }' > .babelrc

答案 2 :(得分:0)

您不能在调用let testInsert = { ID:1, username:'test_user', full_name:'test_full' }; let test = new Test(testInsert); test.save(err => { if(err){ console.log(err); } else{ console.log('insert') } }); 的同一文件中使用转译。您应该将babel-register中的import语句更改为index.js或添加导入声明到另一个文件,并在const express = require('express')之后的index.js中要求它。请注意,babel-register仅在随后的babel-register文件中转储代码,而不在同一文件中转储代码。有关更多信息,请参见https://babeljs.io/docs/usage/babel-register/