目录
第五部分:运用node.js自带的api同步异步写入读取文件。
第八部分:安装npm框架=》node+express+mysql开发
第一部分:先从node.js安装开始
安装包名称:node-v16.14.2-x64
然后直接点击直接进入安装程序即可
安装包可以自行去网上找。
第二部分:验证安装是否成功
打开cmd命令窗口
输入:node -v
可以查看node的版本号,如果出现版本号即安装成功,但是还需要检查一个npm的版本号
npm是node.js中使用插件的玩意,也是相同输入:npm -v
查看版本号,他在安装node.js时npm也会一块安装,不需要自己动手。
Microsoft Windows [版本 10.0.19043.928]
(c) Microsoft Corporation。保留所有权利。
C:\Users\Administrator>node -v
v16.14.2
C:\Users\Administrator>npm -v
8.5.0
C:\Users\Administrator>
第三部分:编写入门初始程序
打开vs code软件,配置vs code插件
插件分别有chinese中文插件,live server内部浏览器插件插件
然后再vs code的集成终端中运行node。
命令是 node 你需要运行的js文件。
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS F:\T2009小刘(可以参观,请别破坏!!!)\nodeJS课程\node\mycode\js> node index.js
第四部分:再一个js文件中引用另一个js文件
首先先创建两个js文件分别是index和demo
然后再index中引用demo里面的方法等
再demo.js中编写的是
function jiafa(a, b) {
return a + b;
}
module.exports = {
jiafa,
}
module.exports = {}这是暴露接口,必须暴露接口其他文件才能访问,我在里面写了一个简单的方法。然后再index文件中编写
//引入其他文件中的js并且在vacode中的集成终端中运行
const jiafa = require("./demo.js");
console.log(jiafa.jiafa(5, 6));
定义一个常量const,然后指向引入的require(“”)文件,其中require()括号里面填写的是你需要引入的文件地址。
然后传递参数再vs code中使用index.js。这样再集成终端中就会输出11出来
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS F:\T2009小刘(可以参观,请别破坏!!!)\nodeJS课程\node\mycode\js> node index.js
11
第五部分:运用node.js自带的api同步异步写入读取文件。
//node.js中的读写入文件方法
const fs = require("fs");
//第一个参数为在那个文件,第二个参数为写入什么数据,第三个参数为写入时是什么格式的
//同步写入
// fs.writeFileSync("demo.html","欢迎同步写入文件","utf-8");
//前三个参数与同步无异,第四个参数为回调函数
//异步写入
fs.writeFile("demo.html","欢迎异步写入文件","utf-8", (err)=>{
//err一般为空,除非写入错误
console.log(err);
});
//同步读取文件
// let txt = fs.readFileSync("demo.html","utf-8");
// console.log(txt);
//异步读取文件
let txt1 = fs.readFile("demo.html","utf-8",(err,data)=>{
console.log(err,data);
})
然后最终我们的两个js文件的代码是这样子的
demo.js文件
function jiafa(a, b) {
return a + b;
}
module.exports = {
jiafa,
}
index.js文件
//引入其他文件中的js并且在vacode中的集成终端中运行
const jiafa = require("./demo.js");
console.log(jiafa.jiafa(5, 6));
//node.js中的读写入文件方法
const fs = require("fs");
//第一个参数为在那个文件,第二个参数为写入什么数据,第三个参数为写入时是什么格式的
//同步写入
fs.writeFileSync(".././demo.html","欢迎同步写入文件","utf-8");
//前三个参数与同步无异,第四个参数为回调函数
//异步写入
// fs.writeFile(".././demo.html","欢迎异步写入文件","utf-8", (err)=>{
// //err一般为空,除非写入错误
// console.log(err);
// });
//同步读取文件
// let txt = fs.readFileSync("demo.html","utf-8");
// console.log(txt);
//异步读取文件
let txt1 = fs.readFile(".././demo.html","utf-8",(err,data)=>{
console.log(err,data);
})
第六部分:运用live server插件
前面我们已经安装了插件,本身在vs code中是不自带引用本地浏览器运行html文件的,然后就需要我们的插件
首先我们先在vs code中创建一个html文件,这里有一个快捷键可以用就是现在创建的html文件中输入Shift+!号,然后会有弹框在点击Enter回车键就会自带生成html代码了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>测试运行!</h1>
</body>
</html>
测试运行是我自己加上去的,然后鼠标右键点击Open with Live Server就会自动在浏览器中运行html文件了
第七部分:使用node.js中的http模块api
首先先引入http模块
//服務器
const http = require("http");
然后创建服务器,其中createServer中的两个参数是请求和响应,以及里面使用方法
res.end是响应网页内容,再加上之前fs模块中的读取就直接响应了一个网页一个网页。
//服務器
const http = require("http");
//创建服務器
const app = http.createServer((req,res)=>{
let html = fs.readFileSync(".././index.html","utf-8");
res.end(html);
})
还有一个监听服务器的方法
//監聽服務器啟動
app.listen(80, ()=>{
console.log("服務器已啟動...");
})
app.listen(80, ()=>{})是监听服务器启动到接受参数之内的方法,其中80代表端口号,80是浏览器中默认的端口号,在浏览器中直接输入localhost就可以直接访问我们的浏览器了,当然也可以更改端口号。
然后通过集成终端启动后就会输出
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS F:\T2009小刘(可以参观,请别破坏!!!)\nodeJS课程\node\mycode\js> node index.js
服務器已啟動...
然后再集成终端内是不能输入任何命令的,可以通过鼠标光标再集成终端内Ctrl+C关闭服务器就可以继续输入命令了。
第八部分:安装npm框架=》node+express+mysql开发
第一步:npm改淘宝镜像
npm install -g cnpm -registry=https://registry.npm.taobao.org
其中install可以简写为i,然后-g表示全局安装
改淘宝镜像的原因是因为下载express框架是太慢了,从国外链接下载的,所以改成淘宝镜像
检查是否成功安装镜像:$ cnpm -v
C:\Users\Administrator>npm install -g cnpm -registry=https://registry.npm.taobao.org
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
added 376 packages in 3m
第二步:安装express
npm i express -g
C:\Users\Administrator>npm i express -g
changed 57 packages, and audited 58 packages in 3s
7 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
npm i -g express-generator
C:\Users\Administrator>npm i -g express-generator
npm WARN deprecated mkdirp@0.5.1: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
added 10 packages, and audited 11 packages in 3s
3 vulnerabilities (1 moderate, 1 high, 1 critical)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
第三步:检查是否安装成功
express --version
C:\Users\Administrator>express --version
4.16.1
第四步:创建项目
选择一个文件夹内打开cmd或者直接通过转盘和cd命令道文件夹内
通过这些命令创建项目:
express (myseifAPI)指项目名
Microsoft Windows [版本 10.0.19043.928]
(c) Microsoft Corporation。保留所有权利。
F:\T2009小刘(可以参观,请别破坏!!!)\nodeJS课程\node\MyCodeTwo>express myseifAPI
warning: the default view engine will not be jade in future releases
warning: use `--view=jade' or `--help' for additional options
create : myseifAPI\
create : myseifAPI\public\
create : myseifAPI\public\javascripts\
create : myseifAPI\public\images\
create : myseifAPI\public\stylesheets\
create : myseifAPI\public\stylesheets\style.css
create : myseifAPI\routes\
create : myseifAPI\routes\index.js
create : myseifAPI\routes\users.js
create : myseifAPI\views\
create : myseifAPI\views\error.jade
create : myseifAPI\views\index.jade
create : myseifAPI\views\layout.jade
create : myseifAPI\app.js
create : myseifAPI\package.json
create : myseifAPI\bin\
create : myseifAPI\bin\www
change directory:
> cd myseifAPI
install dependencies:
> npm install
run the app:
> SET DEBUG=myseifapi:* & npm start
出现以上情况代表创建成功
然后进入创建的文件夹内安装项目依赖
npm install
开始项目命令:npm start
F:\T2009小刘(可以参观,请别破坏!!!)\nodeJS课程\node\MyCodeTwo>cd myseifAPI
F:\T2009小刘(可以参观,请别破坏!!!)\nodeJS课程\node\MyCodeTwo\myseifAPI>npm install
npm WARN deprecated transformers@2.1.0: Deprecated, use jstransformer
npm WARN deprecated constantinople@3.0.2: Please update to at least constantinople 3.1.1
npm WARN deprecated jade@1.11.0: Jade has been renamed to pug, please install the latest version of pug instead of jade
added 99 packages, and audited 100 packages in 11s
5 vulnerabilities (1 low, 4 critical)
To address all issues (including breaking changes), run:
npm audit fix --force
Run `npm audit` for details.
然后项目就创建成功了,可以把项目拖入vs code去进行操作了。
拖入之后可以把bin文件夹下的www文件中的三行命令复制到app.js中
var http = require('http');
var server = http.createServer(app);
server.listen(port);
复制到app.js中
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var http = require('http');
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
var app = express();
var server = http.createServer(app);
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', indexRouter);
app.use('/users', usersRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
server.listen(80, ()=>{
console.log("服务器启动...");
});
改成以上样子就可以了,bin文件夹就没有用可以删除掉了,然后可以直接启动node app.js就可以启动服务器了
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS F:\T2009小刘(可以参观,请别破坏!!!)\nodeJS课程\node\MyCodeTwo\myseifAPI> node app.js
服务器启动...
GET / 200 5694.212 ms - 170
GET / 200 13.129 ms - 170
GET /stylesheets/style.css 200 3.586 ms - 111
GET /favicon.ico 404 12.939 ms - 1722
启动成功直接浏览器中输入localhost就可以直接访问了,
今天的课程也就到此结束了。