NodejsがKOAを使用してルーティング要求を処理する方法

Node.jsは登録ページとログインページを実装し、異なるルーティングアドレスを介して異なるページを返す必要があります。
ステップ1:まず、データベースに接続し、mongo.jsを作成する必要があります

//引入mongoose模块
var mongoose=require("mongoose");
//定义mongodb地址,这里的oa代表着数据库
var DB_url="mongodb://localhost:27017/oa";
//连接mongodb
mongoose.connect(DB_url,{useNewUrlParser: true,useUnifiedTopology: true});
//连接成功时触发该事件
mongoose.connection.on("connected",function(){
	console.log("数据库连接成功");
});
//发生错误时执行该事件
mongoose.connection.on("error",function(err){
	console.log(err);
});
//连接失败时触发该事件
mongoose.connection.on("disconnected",function(){
	console.log("连接失败");
});
module.exports=mongoose;

ステップ2:スキーマを定義してuser.jsを作成する必要があります

const mongoose=require("./mongo.js");
//定义Schema
var Schema=mongoose.Schema;
var UserSchema=new Schema({
	username:{type:String},
	password:{type:String}
});
module.exports=mongoose.model("users",UserSchema);

ステップ3:ログインページをlogin.htmlとして作成する

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<h1>登录页面</h1>
		<form action="http://localhost:3000/login2" method="post">
			/*注意这里的name值需要和后面的js一致*/
			用户名:<input type="text" name="username" /><br />
			密码:<input type="password" name="pass" /><br />
			<input type="submit" value="登录" />
		</form>
	</body>
</html>

ステップ4:register.htmlの登録ページを作成する

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<h1>注册页面</h1>
		<form action="http://localhost:3000/reg" method="post">
			用户名:<input type="text" name="username" /><br />
			密码:<input type="password" name="pass" /><br />
			<input type="submit" value="注册" />
		</form>
	</body>
</html>

ステップ5:成功したログインページをsuccess.htmlとして記述します。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<h1>恭喜你登录成功</h1>
	</body>
</html>

6番目のステップ:ユーザー登録とログインを実現するための重要なステップでもあります。

//引入koa模块
const Koa=require("koa");
//引入koa-body模块
const koaBody=require("koa-body");
//引入koa-route模块
const route=require("koa-route");
//引入fs模块
const fs=require("fs");
//加载user.js模块
const User=require("./user.js");
//创建koa对象
var app=new Koa();
//reg中间件:在注册页面输入账号密码,把账号数据存放数据库,然后进入登录页面
var reg=async ctx=>{	
	//获取提交数据的对象
	var u=ctx.request.body;
	//获取数据
	var username=u.username;
	var pass=u.pass;
	//保存数据
	var user=new User({
		"username":username,
		"password":pass
	});
	//存放数据库
	var us=await user.save();
	//数据存放成功打开登录页面
	if(us){
		ctx.redirect("/login1");
	}
	
}
//login1中间件:打开登录页面
var login1=ctx=>{
	ctx.type="html";
	ctx.body=fs.createReadStream("./login.html");
}
//login2中间件:获取用户输入的账号密码,在数据库里查询数据是否一致,如果一致进入成功页面,否则继续存在登录页面
var login2=async ctx=>{
	//获取提交数据的对象
	var u=ctx.request.body;
	//获取数据
	var username=u.username;
	var pass=u.pass;
	//查询数据库的数据
	var user=await User.findOne({"username":username,"password":pass});
	//判断数据
	if(user){
		ctx.redirect("/success");	//数据正确进入成功页面
	}else{
		ctx.redirect("/login1");	//数据错误继续执行登录页面
	}
}
//success中间件:进入成功页面
var success=ctx=>{
	ctx.type="html";
	ctx.body=fs.createReadStream("./success.html");
}
//获取post请求的数据
app.use(koaBody());
//加载中间件
app.use(route.post('/reg',reg));
//响应登录页面
app.use(route.get("/login1",login1));
//处理登录业务
app.use(route.post("/login2",login2));
//响应登录成功页面
app.use(route.get("/success",success));
//监听端口
app.listen(3000);

注:すべてのファイルは同じディレクトリにあり、mongoose、koa、koa-route、koa-route、fs、およびその他のモジュールをダウンロードする必要があります。
インストールコマンド:cnpmまたはnpm iによってインストールされるモジュール

19件の元の記事を公開 20 件を賞賛 500件を訪問

おすすめ

転載: blog.csdn.net/Handsome_gir/article/details/105077431