# 如何创建Node.js应用 Node.js已成为构建高性能网络应用的流行选择。本文将详细介绍从零开始创建Node.js应用的完整流程,涵盖环境搭建、项目初始化、核心模块使用以及部署发布等关键步骤。 ## 一、环境准备 ### 1. 安装Node.js 首先需要安装Node.js运行环境: 1. 访问[Node.js官网](https://nodejs.org/) 2. 下载LTS版本(长期支持版) 3. 按照安装向导完成安装 验证安装是否成功: ```bash node -v npm -v
推荐使用现代代码编辑器: - Visual Studio Code(免费) - WebStorm(付费) - Sublime Text
mkdir my-node-app cd my-node-app
npm init -y
这会生成包含项目元数据的package.json文件。
典型结构示例:
/my-node-app ├── /node_modules ├── /src │ ├── app.js │ └── /routes ├── package.json └── README.md
新建app.js
:
const http = require('http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello Node.js!'); }); const PORT = 3000; server.listen(PORT, () => { console.log(`Server running at http://localhost:${PORT}/`); });
node app.js
访问http://localhost:3000
查看效果
npm install express
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello Express!'); }); app.listen(3000, () => { console.log('Express app listening on port 3000'); });
创建routes/index.js
:
const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.send('Home Page'); }); module.exports = router;
在app.js中使用路由:
const indexRouter = require('./routes/index'); app.use('/', indexRouter);
// 解析JSON请求体 app.use(express.json()); // 静态文件服务 app.use(express.static('public')); // 自定义中间件示例 app.use((req, res, next) => { console.log(`${req.method} ${req.path}`); next(); });
安装dotenv:
npm install dotenv
创建.env
文件:
PORT=3000 DB_URL=mongodb://localhost:27017/mydb
在app.js中加载:
require('dotenv').config(); const PORT = process.env.PORT || 3000;
npm install mongoose
const mongoose = require('mongoose'); mongoose.connect(process.env.DB_URL, { useNewUrlParser: true, useUnifiedTopology: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', () => { console.log('Connected to database'); });
npm install --save-dev nodemon
修改package.json:
"scripts": { "dev": "nodemon app.js", "start": "node app.js" }
// 404处理 app.use((req, res, next) => { res.status(404).send("Not Found"); }); // 错误处理中间件 app.use((err, req, res, next) => { console.error(err.stack); res.status(500).send('Something broke!'); });
npm install --save-dev jest supertest
创建test/app.test.js
:
const request = require('supertest'); const app = require('../app'); describe('GET /', () => { it('responds with Hello message', async () => { const response = await request(app).get('/'); expect(response.statusCode).toBe(200); expect(response.text).toBe('Hello Express!'); }); });
npm install --save helmet compression
配置生产中间件:
const helmet = require('helmet'); const compression = require('compression'); if (process.env.NODE_ENV === 'production') { app.use(helmet()); app.use(compression()); }
常见部署平台: - 云服务器:AWS EC2、DigitalOcean - PaaS平台:Heroku、Vercel - 容器化:Docker + Kubernetes
Heroku部署示例:
heroku create git push heroku main
推荐进阶学习资源: 1. Node.js官方文档 2. Express框架最佳实践 3. 异步编程模式(Promise/async-await) 4. WebSocket实时应用开发 5. 微服务架构设计
通过以上步骤,您已经完成了Node.js应用的创建、开发和部署全过程。随着项目复杂度增加,可以考虑引入TypeScript、GraphQL等进阶技术来增强应用能力。 “`
这篇文章共计约1150字,按照Markdown格式编写,包含了创建Node.js应用的完整流程,从环境搭建到部署发布,并提供了代码示例和实用建议。您可以根据实际需求调整内容细节或扩展特定部分。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。