我安装了最新的 NodeJS,对于任何 JavaScript 文件,我可以用 node myscript.js
执行它,但最近我正在学习 es6 和一些最新的语法,它只是在执行时弹出一些错误/异常。我尝试了 babel-cli,但似乎没有用,因为它用于将 es6 编译为 5 而不是用于命令行执行。
原文由 photosynthesis 发布,翻译遵循 CC BY-SA 4.0 许可协议
我安装了最新的 NodeJS,对于任何 JavaScript 文件,我可以用 node myscript.js
执行它,但最近我正在学习 es6 和一些最新的语法,它只是在执行时弹出一些错误/异常。我尝试了 babel-cli,但似乎没有用,因为它用于将 es6 编译为 5 而不是用于命令行执行。
原文由 photosynthesis 发布,翻译遵循 CC BY-SA 4.0 许可协议
#source1
https://dev.to/geekygeeky/get-started-with-es6-javascript-for-writing-nodejs-using-express-544h
#create dir /project1
mkdir /project1
cd /project1
#install babel etc
npm i @babel/cli @babel/core @babel/node @babel/preset-env --save-dev
npm i @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread --save-dev
npm i rimraf nodemon --save-dev
#initialize project1
#https://philna.sh/blog/2019/01/10/how-to-start-a-node-js-project/
npm init
#edit /project1/package.json
nano /project1/package.json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "rimraf dist && babel src --out-dir dist --copy-files",
"start": "node dist/app.js",
"start:dev": "nodemon --exec babel-node src/app.js"
},
#edit /project1/.babelrc
nano /project1/.babelrc
{ "presets": [
["@babel/env", {
"targets": {
"node": "current"
}
}]
],
"plugins": [
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread"
]
}
#install express
npm i express --save
#open a bash shell
#create /project1/src
mkdir src
cd src
#edit /project1/src/app.js
nano /project1/src/app.js
import express, { json } from 'express';
import items from './items';
const app = express();
app.use(json())
const PORT = process.env.PORT || 3000;
app.get('/', async (req, res) => {
res.json({ status: true, message: "Our node.js app works" })
});
app.get('/items', (req, res) => {
res.json({ status: true, message: "Fetched all items", data: items })
})
app.listen(PORT, () => console.log(`App listening at port ${PORT}`));
#edit /project1/src/items.js
nano items.js
const items = [
{
id: 1,
username: "John doe",
cartItems: ['football', 'ps5', 'cd-rom'],
},
{
id: 2,
username: "Jane doe",
cartItems: ['mobile phone', 'game pad'],
}
];
export default items;
#open another bash shell
#run server
cd /project1
npm run start:dev
#keep the server running
#check your app via browser
http://localhost:3000
http://localhost:3000/items
原文由 quine9997 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
--harmony
标志:这将在节点中启用可用的 ES6 语法。但请注意,它目前是 ES6 标准的一个有限子集(请参阅 兼容性表)。
2)要完全兼容,你必须使用 babel node 。
安装
@babel/node
以获得babel-node
可执行文件,其工作方式与 Node.js 的 CLI 完全相同,只是它会在运行之前编译 ES6 代码。