刚了解nodejs,发现nodejs配置起来不复杂,但也有很多需要注意的地方,今天就记录一下,以后也可拿出来看看.

要完成这个简单的示例,从零开始,走三步就行了.

一.搭建开发环境

二.创建项目(express)

三.编码

我是属于技术类的人,废话无多.

一.搭建开发环境

  1. nodejs

    1.1 安装

      到官方网站下载最新版本 http://www.nodejs.org/, 下载之后,安装,一路 next

    1.2 配置 path 

      把上面安装的目录配置到环境变量中,方便以后用命令行的方式使用node.exe.

      比如我的 node.exe 在 "H:\Program Files\nodejs\node.exe", 在环境变量最开始加上 "H:\Program Files\nodejs\;"

  2. mongodb

    2.1 安装

      http://www.mongodb.org/downloads 下载, 建议下载 zip 版,开发的时候,不需要安装,直接解压就可以用了.

    2.2 使用命令行方式启动 mongodb, 

      >mongod 127.0.0.1:27017 --dbpath  D:\mongodb\dbone    //D:\mongodb\dbone mongodb和dbone文件夹要自己先建立好, 另外, --dbpath 参数值中间不能有空格

二.创建项目(express)

  1 安装全局插件

    >nmp install -g express          //自动下载 express 插件

    >nmp install -g express-generator    //express 在命令行中的工具

  2. 添加项目

    >express -e myproject

    >cd myproject   

    >npm install  //让npm根据 package.json 自动下载依赖包

    >npm install mongo && npm install express-mongo  //下载 mongodb 支持包

    

三.编码

  1.修改模版规则

    app.js 中

    

app.set('view engine', 'ejs');

    修改成:

app.engine('html', require('ejs').__express);
app.set('view engine', 'html');

  把 /views/ 中的文件后缀改成 *.html

  2..添加页面(又称视图)

    index.html 点击"登录" 跳转到 login.html, 登录功之后,跳转到 welcome.html, 在 welcome.html 点击注销之后跳转到 login.html

    /views/login.html

<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<form method="post">
用户名:<input type="text" name="userid" id="userid"/><br/>
密 码:<input type="password" name="password" id="password"/><br/>
<input type="submit" value="登录"/>
<input type="reset" value="重置"/>
</form>
</body>
</html>

    /views/welcome.html

<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>欢迎光临: <%= userid %></p>
<h1><a href="/logout">注销</a></h1>
</body>
</html>

    修改 /views/index.html

<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
</head>
<body>
<h1><%= title %></h1>
<p>Welcome to <%= title %></p>
<h1><a href="/login">登录</a></h1>
</body>
</html>

    3.添加 model

      添加 /routes/models.js

var mongo = require('mongoose');
var Schema = mongo.Schema;
var UserSchema = new Schema({
userid: String,
name: String,
password: String
}); exports.User = mongo.model('User', UserSchema);

    4.修改路由

    修改 /routes/index.js

var express = require('express');
var router = express.Router();
var mongo = require('mongoose'); //
var models = require('./models'); //引入 model
var User = models.User; mongo.connect('mongodb://192.168.199.9:8888/logindb'); //连接数据库 /* GET home page. */
router.get('/', function(req, res) {
res.render('index', { title: 'Express' });
}); router.get('/login', function(req, res) { //转到登录页面
res.render('login', { title: '登录' });
}); router.post('/login', function(req, res) { //处理登录请求
var query_doc = { userid: req.body.userid, password: req.body.password };
User.count(query_doc, function(err, doc){
if(doc == 1){//验证成功,转到 欢迎页面
res.redirect('/welcome?userid=' + query_doc.userid);
}else{
res.redirect('/login');
}
}); }); router.get('/logout', function(req, res) {//注销,转到登录页面
res.redirect('/login');
}); router.get('/welcome', function(req, res) {//欢迎页面
var userid = req.query.userid;
res.render('welcome', { title: '', userid: userid});
}); module.exports = router;

  5.运行

    5.1.启动 app.js

    >node app

    5.2 用浏览器访问 http://localhost:3000/

提示:

  1.项目如果要支持中文,文件的编码要使用 utf-8,否则有乱码

  2.如果修改了源文件,想马上看到效果,建议安装插件 supervisor

    >npm install -g supervisor  //npm 自动下载插件

    >supervisor app  //安装插件后启动网站的方式(原来是 node app)

  3.如果配置不成功,个人可以提供远程协助.

    3.1 TeamView: wujialongcn@126.com

    3.2 QQ : wujialongcn@126.com

      验证消息: nodejs+mongodb

源代码下载

Nodejs&express+mongodb完成简单用户登录(即Nodejs入门)的更多相关文章

  1. Nodejs+Express+Mysql实现简单用户管理增删改查

    源码地址 https://github.com/king-y/NodeJs/tree/master/user 目录结构 mysql.js var mysql = require('mysql'); v ...

  2. nodejs+express+mongodb实现登录注册

    nodejs+express+mongodb实现登录注册 1 简介 登录注册功能使用nodejs+express+mongodb完成,其中对mongodb的操作使用mongoose完成,对mongod ...

  3. NodeJS+Express+MongoDB

    一.MongoDB MongoDB是开源,高性能的NoSQL数据库:支持索引.集群.复制和故障转移.各种语言的驱动程序丰富:高伸缩性:MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言 ...

  4. express+mongodb+mongoose简单入门

    mongodb安装 window安装方法就不讨论了,比较简单~我们来看一下在linux下面的安装步骤~(这里需要一点linux的简单命令知识哈) 1.下载文件到服务器(先创建好自己想安装的目录)~ c ...

  5. 【重点突破】—— Nodejs+Express+MongoDB的使用基础

    前言:最近学习vue和react的高阶项目,都需要和Nodejs+Express+MongoDB结合实现全栈开发.这里结合实例Demo和所学项目集中总结一下这部分服务端的基础知识. 一.Express ...

  6. 使用node+express+mongodb实现用户注册、登录和验证功能

    无论是手机端还是pc端,几乎都包含登录注册方面功能,今天就使用node+express+mongodb实现一套登录注册功能,这里需要自己去安装MongoDB环境,如果没有安装可以看这篇关于MongoD ...

  7. python入门:模拟简单用户登录(自写)

    #!/usr/bin/env python # -*- coding: utf-8 -*- #模拟简单用户登录(自写) import getpass a = raw_input("Pleas ...

  8. nodejs+express+mongodb简单的例子

    简单的介绍下node+express+mongodb这三个东西.node:是运行在服务器端的程序语言,表面上看过去就是javascript一样的东西,但是呢,确实就是服务器语言,个人觉得在一定层次上比 ...

  9. NodeJS+Express+MongoDB 简单实现数据录入及回显展示【适合新人刚接触学习】

    近期在看NodeJS相关 不得不说NodeJS+Express 进行网站开发是很不错,对于喜欢玩JS的来说真是很好的一种Web开发组合 在接触NodeJS时受平时Java或者C#中API接口等开发的思 ...

随机推荐

  1. Velocity 语法(转)

    一.基本语法 1."#"用来标识Velocity的脚本语句,包括#set.#if .#else.#end.#foreach.#end.#iinclude.#parse.#macro ...

  2. 如何给你的LinuxVPS装个远程桌面

    有些人抱怨Linux的系统没有桌面,用着实在是不方便.今天整理一下网上的教程,给VPS装个桌面环境.Centos系统+X Window+GNOME Desktop. 此程序会安装无数乱七八糟的东西到你 ...

  3. 使用 PDO 方式将 Session 保存到 MySQL 数据中

    类: <?php /* 使用数据库保存session */ class DBHandler implements SessionHandlerInterface { protected $dbh ...

  4. C# 方法的回调(上)

    在C#编程中方法的回调有以下几种方式 通过接口.通过委托.定时回调.多线程回调,异步回调 下面就以代码的形式来讲解这种方式 通过接口回调 代码示例如下 定义接口,定义了一个Run 方法: interf ...

  5. HTML5 history新特性pushState、replaceState

    DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,让你可以在用户的访问记录中前进和后退. 从HTML5开始,我们可以开始操作这个历史记录堆栈. 1.Histo ...

  6. hibernate学习(6)——加载策略(优化)

    1. 检索方式 1  立即检索:立即查询,在执行查询语句时,立即查询所有的数据. 2 延迟检索:延迟查询,在执行查询语句之后,在需要时在查询.(懒加载) 2.  检查策略 1  类级别检索:当前的类的 ...

  7. Mock之easymock, powermock, and mockito

    easymock, powermock, and mockito Easymock Class Mocking Limitations To be coherent with interface mo ...

  8. Java_Map_Map详解

    本博客为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/8867065 1.Map概述 Map<K,V>  Map集 ...

  9. ThinkCmfX模板常量

    一.public文件: 1.各种js文件,包括cookie.js.ajaxFrom.js等系统自带的js文件 2.simpleboot:bootstrap.图标font文件 二.themes:前端模板 ...

  10. 深入解析PHP中逗号与点号的区别

    大部分同学都知道逗号要比点号快,但就是不知道为什么,更不知道逗号与点号这两者之间到底有什么区别.下面小编就来详细的为大家介绍一下,需要的朋友可以过来参考下 echo 'abc'.'def'; //用点 ...