使用 JS 搭建网站后台的那些技术

栏目: JavaScript · 发布时间: 5年前

内容简介:搭建一个完整的网站,少不了前端和后端。一般常用的后端语言是 Java,node.js 横空出世之后,现在也可以通过 JavaScript 开发后端服务了。下面介绍下使用node.js + Express + MongoDB搭建一个后端服务。node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,入门简单;Express 是一个保持最小规模的灵活的 node.js Web 应用程序开发框架;MongoDB 是一个基于分布式文件存储的数据库。

使用 JS 搭建网站后台的那些技术

搭建一个完整的网站,少不了前端和后端。一般常用的后端语言是 Java,node.js 横空出世之后,现在也可以通过 JavaScript 开发后端服务了。下面介绍下使用node.js + Express + MongoDB搭建一个后端服务。

node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,入门简单;Express 是一个保持最小规模的灵活的 node.js Web 应用程序开发框架;MongoDB 是一个基于分布式文件存储的数据库。

Express

安装

npm install express –save

使用

在使用Express的时候,我们通过如下方式创建一个应用:

var express = require('express');
var app = express();
app.listen(8081);

而在不使用框架的时候,通常的做法是:

var http = require('http');
http.createServer(function(req, res) {
        res.write('hello world');
        res.end();
    }).listen(8081);

Express实际上就是一个工厂函数,用来创建app,而app则就是createServer的回调函数,在使用Express的时候,事实上,所有的请求都是交给app,通过app.handle来处理了。

Router

app有一个Router属性,Router相当于是一个中间件容器,存放着各种各样的中间件,可以分为路由中间件和其它中间件。

路由机制

Route的主要属性和方法有:

♣ path,string,表示路径

♣ stack,[],存放的是Layer对象,表示路由处理函数

♣ methods,{},表明支持哪些HTTP方法,例如{ get: true },如果使用了all(),则该属性值为{ _all: true }

例如:

app.all('/login', function() {});
app.get('/login/:userid', function() {});
app.route('/login').get(function() {}).post(function() {});

MongoDB

特点

MongoDB是非关系数据库当中功能最丰富的,它有如下特点

(1)面向集合

MongoDB的collection(集合)相当于关系型数据库(RDBMS)里的表(table)。

(2)模式自由

也可称为无模式,存储在 MongoDB 数据库中的文件,我们不需要知道它的任何结构定义,不像 Mysql 等需要定义好数据类型,它像js中的json一样自由,如{“welcome” : “Beijing”}。

(3) 文档型

意思是我们存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档。

(4) 性能优越

千万级别的文档对象,近10G的数据,对非索引字段的查询,相对其它数据库全面胜出

(5) MongoDB不支持事务操作

所以事务要求严格的系统(如果银行系统)肯定不能用它。

(6) MongoDB占用空间过大。

由于空间预分配、删除记录不释放空间,可以定期运行db.repairDatabase()来整理记录。

安装

npm install mongodb

使用

var MongoClient = require('mongodb').MongoClient
MongoClient.connect('mongodb://localhost:27017/animals', function (err, db) {
  if (err) throw err
  db.collection('mammals').find().toArray(function (err, result) {
    if (err) throw err
    console.log(result)
  })
})

增删改

使用insert向collection增加数据

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {
    auto_reconnect: true
});
var db = new mongodb.Db('mydb', server, {
    safe: true
});
db.open(function(err, db) {
    if (!err) {
        db.collection('mycoll', {
            safe: true
        }, function(err, collection) {
            var tmp1 = {
                title: 'hello',
                number: 1
            };
            collection.insert(tmp1, {
                safe: true
            }, function(err, result) {
                console.log(result);
            });
        });
    } else {
        console.log(err);
    }
});

使用update更新数据

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {
    auto_reconnect: true
});
var db = new mongodb.Db('mydb', server, {
    safe: true
});
db.open(function(err, db) {
    if (!err) {
        db.collection('mycoll', {
            safe: true
        }, function(err, collection) {
            collection.update({
                title: 'hello'
            }, {
                $set: {
                    number: 3
                }
            }, {
                safe: true
            }, function(err, result) {
                console.log(result);
            });
        } else {
            console.log(err);
        })
    };
})

使用remove删除数据

var mongodb = require('mongodb');
var server = new mongodb.Server('localhost', 27017, {
    auto_reconnect: true
});
var db = new mongodb.Db('mydb', server, {
    safe: true
});
db.open(function(err, db) {
    if (!err) {
        db.collection('mycoll', {
            safe: true
        }, function(err, collection) {
            collection.remove({
                title: 'hello'
            }, {
                safe: true
            }, function(err, result) {
                console.log(result);
            });

        } else {
            console.log(err);
        })
    };
})

常用指令

【默认】

MongoDB如果没有创建新的数据库,则在默认数据库test 中。

【查看】

使用show dbs来查看数据库

【创建/切换】

使用use命令来切换/创建数据库, 要显示它,需要向数据库插入一些数据

use db_name

【显示当前数据库】

使用db命令来显示当前数据库

【将数据写入集合中】

使用db.集合名.insert(文档)来将文档的数据写入集合中,文档的格式为JSON。而所有存储在集合中的数据都是BSON格式。BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。

db.collection_name.insert

【查看集合】

使用show collections命令可以查看当前数据库中的所有集合(即表)

【删除数据库】

这将删除当前所选数据库,如果没有选择任何数据库,那么它将删除默认的’test‘数据库

db.dropDatabase

集合操作(即table)

可以使用命令show collections检查创建的集合

也可以使用show tables来查看集合

【创建集合】

在插入文档时,MongoDB首先检查上限集合capped字段的大小,然后检查max字段

db.createCollection(name, {capped:  , autoIndexId:  , size:  , max 

} )

name:集合名字

capped:是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义

autoIndexId:是否使用_id作为索引,默认为使用

size:限制集合使用空间的大小,默认为没有限制,size的优先级比max要高

max:集合中最大条数限制,默认为没有限制

[注意]向集合中插入文档时,如果集合不存在 ,则会自动创建集合

【删除集合】

MongoDB 的 db.collection_name.drop用于从数据库中删除集合。true表示删除成功,false表示删除失败。

使用 JS 搭建网站后台的那些技术


以上所述就是小编给大家介绍的《使用 JS 搭建网站后台的那些技术》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

启示录

启示录

[美] Marty Cagan / 七印部落 / 华中科技大学出版社 / 2011-5 / 36.00元

为什么市场上那么多软件产品无人问津,成功的产品凤毛麟角?怎样发掘有价值的产品?拿什么说服开发团队接受你的产品设计?如何将敏捷方法融入产品开发?过去二十多年,Marty Cagan作为高级产品经理人为多家一流企业工作过,包括惠普、网景、美国在线、eBay。他亲历了个人电脑 、互联网、 电子商务的起落沉浮。《启示录:打造用户喜爱的产品》从人员、流程、产品三个角度介绍了现代软件(互联网)产品管理的实践经......一起来看看 《启示录》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码