使用 JS 搭建网站后台的那些技术
栏目: JavaScript · 发布时间: 7年前
内容简介:搭建一个完整的网站,少不了前端和后端。一般常用的后端语言是 Java,node.js 横空出世之后,现在也可以通过 JavaScript 开发后端服务了。下面介绍下使用node.js + Express + MongoDB搭建一个后端服务。node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,入门简单;Express 是一个保持最小规模的灵活的 node.js Web 应用程序开发框架;MongoDB 是一个基于分布式文件存储的数据库。
搭建一个完整的网站,少不了前端和后端。一般常用的后端语言是 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字段
} )
name:集合名字
capped:是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
autoIndexId:是否使用_id作为索引,默认为使用
size:限制集合使用空间的大小,默认为没有限制,size的优先级比max要高
max:集合中最大条数限制,默认为没有限制
[注意]向集合中插入文档时,如果集合不存在 ,则会自动创建集合
【删除集合】
MongoDB 的 db.collection_name.drop用于从数据库中删除集合。true表示删除成功,false表示删除失败。
以上所述就是小编给大家介绍的《使用 JS 搭建网站后台的那些技术》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Algorithms Unlocked
Thomas H. Cormen / The MIT Press / 2013-3-1 / USD 25.00
Have you ever wondered how your GPS can find the fastest way to your destination, selecting one route from seemingly countless possibilities in mere seconds? How your credit card account number is pro......一起来看看 《Algorithms Unlocked》 这本书的介绍吧!