一、什么是Node.js?
简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
二、Node.js的安装配置
该博客以在Windows安装Node.js为例。
1.Windows安装包(.msi)
32位安装包下载地址:https://nodejs.org/en/download/
64位安装包下载地址:https://nodejs.org/en/download/
下载完成后,双击安装包,进行傻瓜式安装(一直Next)。
2.安装完成后,打开终端,输入 node -v/node -version查看安装版本,也是验证是否成功安装node.js。
3.安装成功后,注销或者重启计算机,否则跟随node一起安装的npm不会生效
npm是用Node.js编写的,所以你需要安装Node.js才能使用npm。可以通过Node.js网站安装npm(安装node.js时,会自动安装npm),也可以安装Node Version Manage 或NVM。
三、Node.js实战(实现注册登录)
1.通过Visual Studio Code创建一个项目文件夹。这里为了给大家演示项目,项目的文件夹名字为:registandlogin(文件夹名不能是中文或者英文大写)
2.在终端中打开文件夹路径,输入命令npm init 或者npm init --yes 或者npm init -y。
npm init:这个命令用于创建一个package.json (项目的所有配置信息,都可以直接回车忽略)
npm init --yes 和 npm init -y :从当前目录中提取的信息生成默认的package.json。创建过程中不会提问。
3.创建一个静态文件夹,然后在该文件夹里面创建一个html文件。项目中,该静态文件夹名为public,html文件名为index,该html文件中为前端代码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>nodejs之登录注册</title>
</head>
<body>
<form action="/regist">
<h1>regist</h1>
<label for="">账号:</label>
<input name="user" type="text" placeholder="请输入账号">
<br>
<label for="">密码:</label>
<input name="psw" type="password" placeholder="请输入密码">
<br>
<label for="">重复密码:</label>
<input name="pswa" type="password" placeholder="请重复输入密码">
<br>
<input type="submit" value="注册">
</form>
<br>
<hr>
<br>
<form action="/login" method="POST">
<h1>login</h1>
<label for="">账号:</label>
<input name="user" type="text" placeholder="请输入账号">
<br>
<label for="">密码:</label>
<input name="password" type="password" placeholder="请输入密码">
<br>
<input type="submit" value="提交">
</form>
</body>
</html>
4.在项目文件夹下创建一个js文件,里面为服务端代码。并且下载所有依懒项(比如 npm install express)
var express = require('express')
// post请求方式会将参数放入到请求体当中
// 所以需要引入解析请求体的模块 body-parser
var bodParser = require('body-parser')
var web = express()
web.use(express.static('public'))
// 设置对url进行编码 并且不允许url进行扩展
// 如果设置为false 那么参数只能为数组或者字符串
// 如果设置为True 那么参数为任意类型
web.use(bodParser.urlencoded({extended:false}))
// 存储注册成功以后的账号密码
var account = ''
var psw = ''
web.get('/regist',function(req,res){
var password = req.query.psw
var password2 = req.query.pswa
var user = req.query.user
if (user != account && password == password2)
{
account = user
psw = password
res.send('恭喜注册成功!账号是'+user+',密码是'+password+',请妥善保管')
}
else{
res.send('注册失败,账号已经注册或者密码不一致')
}
console.log(password)
console.log(password2)
console.log(user)
})
web.post('/login',function(req,res){
name = req.body.user;
password = req.body.password;
if (name == account && password == psw)
{
res.send('登录成功')
}
else{
res.send('登录失败')
}
})
//使用listen方法绑定8080端口
web.listen('8080',function(){
console.log('服务器启动...')
})
5.右键index.js文件,在终端中打开。启动服务器,命令node index.js(一旦修改服务端代码,需要重启服务器。同一个服务器程序,不能在多个终端启动)
6.打开浏览器,输入localhost:8080
注意:项目以成功完成测试。以上项目的文件名都不是固定的,随意取名,但是一定要符合取名规则(不能是汉字或大写)