设为首页 收藏本站
查看: 1443|回复: 0

[经验分享] 从无到有,用Nodejs+express+mongodb搭建简易登陆系统

[复制链接]

尚未签到

发表于 2015-7-5 14:19:19 | 显示全部楼层 |阅读模式
  前端处理server表示很蛋疼,初学Node,虽然感觉异常强大,但是学起来还是有些吃力的,Node是工具,它不是万能的,搭建一个系统还是需要借助其他一些工具,对于我这个没怎么接触server的前端来说,挑战是有的。昨天参考一些资料尝试用Node+express+mongodb搭建一个简易的登陆系统,在此记之。
  express是一个灵活的nodejs web应用框架, 提供一系列强大特性帮助你创建各种Web应用。
  Mongodb是数据库。
  1、安装express,express安装比较简单,直接用npm install -g express-generator,一定要用这个,如果用npm install -g express就会出现express not found的问题。
  2、安装mongodb, 在官网下下在程序,然后一步步安装,我是在D盘新建一个Mongodb的文件夹,安装在该文件夹内。
  3、将安装文件目录下bin下面的文件复制到Mongodb根目录。
  4、启动mongodb,cmd中命令如下:
  如果看到下面的内容,恭喜启动成功。最好建一个cmd文件,每次启动运行该文件即可。
DSC0000.jpg
  mongodb.cmd文件:



:: 定位到D盘
d:
:: 切换到mongodb的数据库目录
cd Mongodb
:: 删除数据库锁定记录文件
if exist mongod.lock del mongod.lock missing

:: 配置mongodb的文档存储目录
mongod --dbpath "D:\Mongodb\data"
  5、在Mongodb目录下运行mongo,默认链接到test
DSC0001.png
  到这里整个环境配置完毕并且已经启动。
  下面看具体的Node。
  安装完express后在某个目录下运行express Login -e就会自动创建一个项目,然后npm install会下载依赖包。
  1、新建一个models文件夹,在该文件夹下新建user.js:



var mongoose = require("mongoose");  //  顶会议用户组件
var Schema = mongoose.Schema;    //  创建模型
var userScheMa = new Schema({
userid: String,
password: String
}); //  定义了一个新的模型,但是此模式还未和users集合有关联
exports.user = mongoose.model('users', userScheMa); //  与users集合关联
  2、在views下面建index.ejs, errors.ejs, login.ejs, logout.ejs, homepage.ejs。 (index是自带的,不用建)
  index.ejs:










Hello World
Welcome to
登陆


  login.ejs:










Hello World
Welcome to


userId:




password:







  loginout.ejs:










Hello World
Welcome to
正在登出...

setTimeout(function(){
window.location.href = "/";
}, 500);



  homepage.ejs:










Hello World
Welcome to
登出


  3、在routes目下的index.js配置路由:



var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
var user = require('../models/user').user;
mongoose.connect('mongodb://localhost/admin');
/* GET home page. */
router.get('/', function(req, res) {
res.render('index', { title: 'index' });
});
/*login*/
router.get('/login', function(req, res) {
res.render('login', { title: 'login' });
});
/*logout*/
router.get('/logout', function(req, res) {
res.render('logout', { title: 'logout' });
});
/*hompage*/
router.post('/homepage', function(req, res) {
var query_doc = {userid: req.body.userid, password: req.body.password};
(function(){
user.count(query_doc, function(err, doc){
if(doc == 1){
console.log(query_doc.userid + ": login success in " + new Date());
res.render('homepage', { title: 'homepage' });
}else{
console.log(query_doc.userid + ": login failed in " + new Date());
res.redirect('/');
}
});
})(query_doc);
});
module.exports = router;
  大功告成。
  确保启动mongodb后在Login项目下运行npm start。然后在浏览器输入https://localhost:3000就能看到界面了:
DSC0002.png
  漏了一点,需要在mongodb创建用户名和密码,不然没法登陆进去。步骤如下:
DSC0003.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-83416-1-1.html 上篇帖子: 大熊君大话NodeJS之------MongoDB模块(额外篇) 下篇帖子: nodejs+express+jade+mongodb给我baby做个小相册(2)-留言板
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表