好的,我可以为您生成一本Markdown格式的学习文档,主题是Node.js教程学习笔记。这本笔记将涵盖Node.js的基础知识、核心模块和常用模块以及实例等内容,帮助您更好地学习和掌握Node.js技术。
Node.js 学习笔记
基础知识
什么是Node.js?
Node.js是基于Chrome V8引擎的JavaScript运行时环境,使得JavaScript能够脱离浏览器在服务器端执行,实现了服务端JavaScript应用的开发。
Node.js 的特点
- 单线程异步IO模型,可以处理大量并发请求
- 基于事件驱动的编程模型,代码简洁易维护
- 使用npm包管理器,拥有庞大的第三方模块库
- 跨平台支持,可在Windows、Linux和Mac OS等操作系统上运行
Node.js 安装
您可以到nodejs.org下载适合您操作系统的安装包,按照提示安装即可。
核心模块
fs模块
fs模块是Node.js内置的文件系统模块,提供了文件读写、目录操作等相关功能,是Node.js中最常用的核心模块之一。
文件读写
javascriptCopy Codeconst fs = require('fs');
// 读取文件内容
fs.readFile('path/to/file', 'utf-8', (err, data) => {
if (err) throw err;
console.log(data);
});
// 写入文件内容
fs.writeFile('path/to/file', 'Hello Node.js!', (err) => {
if (err) throw err;
console.log('文件已保存');
});
目录操作
javascriptCopy Codeconst fs = require('fs');
// 创建目录
fs.mkdir('path/to/dir', { recursive: true }, (err) => {
if (err) throw err;
console.log('目录已创建');
});
// 读取目录
fs.readdir('path/to/dir', (err, files) => {
if (err) throw err;
console.log(files);
});
// 删除目录
fs.rmdir('path/to/dir', { recursive: true }, (err) => {
if (err) throw err;
console.log('目录已删除');
});
http模块
http模块是Node.js内置的HTTP服务器模块,可以用来创建一个简单的HTTP服务器。
javascriptCopy Codeconst http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('Hello World!');
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
常用模块
express模块
express是一个流行的基于Node.js平台的Web应用框架,提供了一系列强大的功能和特性,使得开发Web应用更加简单和快速。
javascriptCopy Codeconst express = require('express')
const app = express()
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(3000, () => {
console.log('Example app listening at http://localhost:3000')
})
mongoose模块
mongoose是基于Node.js平台的MongoDB对象模型工具,提供了一系列强大的功能和特性,使得开发MongoDB应用更加简单和便捷。
javascriptCopy Codeconst mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true });
const Cat = mongoose.model('Cat', { name: String });
const kitty = new Cat({ name: 'Tom' });
kitty.save().then(() => console.log('meow'));
实例
使用Node.js搭建一个简单的Web应用
javascriptCopy Codeconst http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write('<h1>Hello Node.js!</h1>');
res.end();
});
server.listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
在浏览器中输入http://localhost:3000/
即可访问该应用,页面将显示Hello Node.js!
。
使用express和mongoose搭建一个简单的REST API服务
javascriptCopy Codeconst express = require('express');
const mongoose = require('mongoose');
const app = express();
const port = process.env.PORT || 3000;
mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true });
const Cat = mongoose.model('Cat', { name: String });
app.get('/cats', (req, res) => {
Cat.find((err, cats) =>{
res.send(cats);
});
});
app.post('/cats', (req, res) => {
const kitty = new Cat({ name: 'Tom' });
kitty.save().then(() => console.log('meow'));
res.send('Added a new cat!');
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});
在浏览器中输入http://localhost:3000/cats
,即可访问该API服务,该服务将返回所有的Cat文档信息。同时,在命令行中执行curl -X POST http://localhost:3000/cats
,即可向该服务添加一个新的Cat文档。