使用 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 搭建网站后台的那些技术》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

O2O进化论

O2O进化论

板砖大余、姜亚东 / 中信出版社 / 2014-5 / 49

在互联网的1.0时代,Online的商业和Offline的商业就像是两条平行线,没有交汇点,在移动浪潮下,他们正在交汇,这就是O2O(Online to Offline)。于是,人们认为:O2O就是线下将线上作为销售前台。结论是对的,但并非简单相加就可以达到。人们已经进入数据革命时期,O2O是线上和线下全流通的数据化工具,电子商务就是非数据商品的数据化。其次,O2O还是一种竞争格局。这决定了以O2......一起来看看 《O2O进化论》 这本书的介绍吧!

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

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具