[Node.js专题一]Node.js环境搭建及项目创建

一、环境搭建

1、下载node.js

node.js中文网下载地址
这里写图片描述

2、安装及配置node.js

参考几位大神的文章
node.js安装及环境配置windows篇
node.js安装及环境配置Mac篇
node.js安装及环境配置Linux篇

二、创建项目

1、创建项目文件夹

这里写图片描述

2、配置项目

命令行进入项目文件夹
命令行进入项目文件夹
初始化项目 npm init
这里写图片描述
这里写图片描述
这里写图片描述
安装框架 npm install express -g
这里写图片描述
热部署 sudo npm install supervisor -g
这里写图片描述
解析请求体(post请求)npm i body-parser –save
这里写图片描述

3、创建server.js
//导入功能模块
var express = require('express');
//创建服务器对象,实例,一个应用程序
var app = express();
var bodyParser = require('body-parser');
//urlencoded() 对url进行编码
//extended:true 是否对编码格式开始高级编码
app.use(bodyParser.urlencoded({ extended: true }));
//express.static("www")托管静态资源,参数是静态资源的文件夹
app.use(express.static("static"));
//listen(端口号,执行方法)用来监听指定端口号
app.listen(8082, function() {
    console.log("服务器启动成功,监听端口:%d", 8082);
});
var users = new Map();
//添加一个请求方式为get的接口
//get(接口路径,执行方法(req,resp))
/**
 * 注册接口
 */
app.get("/register.do", function(req, resp) {
    var username = req.query.username;
    var paw = req.query.paw;
    console.log(users.get(username))
    if(username == undefined || username == "") {
        resp.send("用户名不能为空");
    } else if(paw == undefined || paw == "") {
        resp.send("密码不能为空");
    } else if(users.get(username) != undefined) {
        resp.send("用户已存在");
    } else {
        users.put(username, paw);
        resp.send("注册成功");
    }
});
//添加请求方法为post的接口
/**
 * 登录接口
 */
app.post("/login.do", function(req, resp) {
    console.log(req.body)
    var username = req.body.username;
    var paw = req.body.paw;
    if(username == undefined||username=="") {
        resp.send("用户名不能为空");
    } else if(paw == undefined||paw=="") {
        resp.send("密码不能为空");
    } else if(users.get(username) == undefined) {
        resp.send("用户不存在");
    } else {
        var userPaw = users.get(username);
        if(userPaw==paw){
            resp.send("欢迎欢迎,热烈欢迎领导视察!");
        }else{
            resp.send("密码错误");
        }
    }
});

function Map() {
    /** 存放键的数组(遍历用到) */
    this.keys = new Array();
    /** 存放数据 */
    this.data = new Object();

    /**   
     * 放入一个键值对   
     * @param {String} key   
     * @param {Object} value   
     */
    this.put = function(key, value) {
        if(this.data[key] == null) {
            this.keys.push(key);
        }
        this.data[key] = value;
    };

    /**   
     * 获取某键对应的值   
     * @param {String} key   
     * @return {Object} value   
     */
    this.get = function(key) {
        return this.data[key];
    };

    /**   
     * 删除一个键值对   
     * @param {String} key   
     */
    this.remove = function(key) {
        this.keys.remove(key);
        this.data[key] = null;
    };

    /**   
     * 遍历Map,执行处理函数   
     *    
     * @param {Function} 回调函数 function(key,value,index){..}   
     */
    this.each = function(fn) {
        if(typeof fn != 'function') {
            return;
        }
        var len = this.keys.length;
        for(var i = 0; i < len; i++) {
            var k = this.keys[i];
            fn(k, this.data[k], i);
        }
    };

    /**   
     * 获取键值数组(类似<a href="http://lib.csdn.net/base/java" class='replace_word' title="Java 知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>的entrySet())   
     * @return 键值对象{key,value}的数组   
     */
    this.entrys = function() {
        var len = this.keys.length;
        var entrys = new Array(len);
        for(var i = 0; i < len; i++) {
            entrys[i] = {
                key: this.keys[i],
                value: this.data[i]
            };
        }
        return entrys;
    };

    /**   
     * 判断Map是否为空   
     */
    this.isEmpty = function() {
        return this.keys.length == 0;
    };

    /**   
     * 获取键值对数量   
     */
    this.size = function() {
        return this.keys.length;
    };

    /**   
     * 重写toString    
     */
    this.toString = function() {
        var s = "{";
        for(var i = 0; i < this.keys.length; i++, s += ',') {
            var k = this.keys[i];
            s += k + "=" + this.data[k];
        }
        s += "}";
        return s;
    };
}
4、启动项目

supervisor server.js
这里写图片描述

5、测试项目

这里写图片描述
这里写图片描述

6、项目完整结构

这里写图片描述

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值