最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

NodeJS学习笔记之Connect中间件应用实例_node.js

来源:动视网 责编:小采 时间:2020-11-27 21:33:33
文档

NodeJS学习笔记之Connect中间件应用实例_node.js

NodeJS学习笔记之Connect中间件应用实例_node.js:一,开篇分析 大家好哦,大熊君又来了,昨天因为有点个人的事没有写博客,今天又出来了一篇,这篇主要是写一个记事本的小应用,前面的文章, 我也介绍过Connect中间件的使用以及Mongodb的用法,今天就结合这两个中间件,写个实际的例子,不断完善和重
推荐度:
导读NodeJS学习笔记之Connect中间件应用实例_node.js:一,开篇分析 大家好哦,大熊君又来了,昨天因为有点个人的事没有写博客,今天又出来了一篇,这篇主要是写一个记事本的小应用,前面的文章, 我也介绍过Connect中间件的使用以及Mongodb的用法,今天就结合这两个中间件,写个实际的例子,不断完善和重
 一,开篇分析

大家好哦,大熊君又来了,昨天因为有点个人的事没有写博客,今天又出来了一篇,这篇主要是写一个记事本的小应用,前面的文章,

我也介绍过“Connect”中间件的使用以及“Mongodb”的用法,今天就结合这两个中间件,写个实际的例子,不断完善和重构,已达到

充分学习的目的。好了,废话不说了,直接进入主题。

二,需求分析

(1),用户注册,登录功能(没有涉及很复杂的交互场景,注册时会有用户判断是否已存在)。

(2),用户登录成功,进入笔记管理系统的后台(笔记模块的增删改查功能)。

(3),用户可以具有简单的权限划分(管理员,注册用户)。

(4),界面比较简单,以学习为主。

三,开始设计应用(第一部分)

(1),建立用户登录页面,代码如下:

代码如下:



Bigbear记事本应用登录






Bigbear记事本应用登录



  效果图:

(2),建立用户注册页面,代码如下:

代码如下:



Bigbear记事本应用注册






Bigbear记事本应用注册




  效果图:

(3),建立“Mongodb”连接代码,如下:

代码如下:
var mongodb = require("mongodb") ;
var server = new mongodb.Server("localhost",27017,{
auto_reconnect : true
}) ;
var conn = new mongodb.Db("bb",server,{
safe : true
}) ;
conn.open(function(error,db){
if(error) throw error ;
console.info("mongodb connected !") ;
}) ;
exports = module.exports = conn ;

(4),建立模型实体类“User”,如下:

代码如下:
var conn = require("../conn") ;
function User(user){
this.name = user["name"] ;
this.password = user["password"] ;
} ;
User.prototype.save = function(callback){
var that = this ;
conn.collection("users",{
safe : true
},function(error,collection){
if(error) return conn.close() ;
collection.findOne({ // 判断此用户是否存在
name : that.name
},function(error,user){
if(error) return conn.close() ;
if(!user){
collection.insert({
name : that.name + "" ,
password : that.password + ""
},{
safe : true
},function(error,user){
if(error) return conn.close() ;
callback && callback(user) ;
conn.close() ;
}) ;
}
else{
callback("User has registed !") ;
}
}) ;
}) ;
} ;
User.login = function(name,password,callback){
conn.collection("users",{
safe : true
},function(error,collection){
if(error) return conn.close() ;
collection.findOne({
name : name ,
password : password
},function(error,user){
if(error) return conn.close() ;
callback && callback(user) ;
conn.close() ;
}) ;
}) ;
} ;
exports = module.exports = User ;

  效果图:

(5),建立应用程序“app”,如下:

代码如下:
// app.js
var connect = require("./lib/connect") ;
var user = require("./models/user") ;
var app = connect.createServer() ;
app .use(connect.logger("dev"))
.use(connect.query())
.use(connect.bodyParser())
.use(connect.cookieParser())
.use(connect.static(__dirname + "/views"))
.use(connect.static(__dirname + "/public"))
.use("/login",function(request,response,next){
var name = request.body["name"] ;
var password = request.body["password"] ;
user.login(name,password,function(user){
if(user){
response.end("Welcome to:" + user["name"] + " ^_^ ... ...") ;
}
else{
response.end("User:" + name + " Not Register !") ;
}
}) ;
})
.use("/reg",function(request,response,next){
var name = request.body["name"] ;
var password = request.body["password"] ;
new user({
name : name ,
password : password
}).save(function(user){
if(user && user["name"]){
  response.end("User:" + name + "Register Done !") ;
}
else{
  response.end("User: " + name + "has registed !") ;
}
}) ;
})
.listen(8888,function(){
console.log("Web Server Running On Port ---> 8888 .") ;
}) ;

  说明一下:

    (1)“connect.query()”------处理“Get”请求参数解析。

    (2)“connect.bodyParser()”------处理“Post”请求参数解析。

    (3)“connect.static(__dirname + "/views"),connect.static(__dirname + "/public")”

     分别代表模板视图“html”以及静态资源如“js,css,jpg,gif”的资源目录。

     以下是这个应用的目录结构:

四,总结一下

  (1),掌握NodeJs操作数据库的基本操作语句。

  (2),划分层级,如模型,视图,路由。

  (3),不断优化和修改本文的例子(比如注册验证用户是否存在,可以独立出“UserManager”做一层代理完成用户验证和保存的动作)。

  (4),明天继续完成后续的功能,尽请期待。

文档

NodeJS学习笔记之Connect中间件应用实例_node.js

NodeJS学习笔记之Connect中间件应用实例_node.js:一,开篇分析 大家好哦,大熊君又来了,昨天因为有点个人的事没有写博客,今天又出来了一篇,这篇主要是写一个记事本的小应用,前面的文章, 我也介绍过Connect中间件的使用以及Mongodb的用法,今天就结合这两个中间件,写个实际的例子,不断完善和重
推荐度:
标签: node.js Nodejs connect
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top