本地:Windows10 64位node
服务器:阿里云轻量应用服务器CentOS 7.3linux
使用的链接工具:
putty
mobaxterm
固然还有Xshell
这几个中任选一个就好啦。mongodb
链接工具使用方法:
建立session>ssh
填入服务器IP
地址和用户名(root
),点击确认而后输入密码便可。
(这个是mobaxterm
的使用方法,其余的也都一个套路。)shell
使用wget命令下载Node包数据库
wget https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.xz
解压文件npm
tar xvf node-v8.10.0-linux-x64.tar.xz
建立软链接,主要是为了命令能够全局有效vim
ln -s /root/node-v8.10.0-linux-x64/bin/node /usr/local/bin/node ln -s /root/node-v8.10.0-linux-x64/bin/npm /usr/local/bin/npm
查看是否成功windows
node -v npm -v
备注 :固然也能够采用其余的方式搭建node运行环境,例如使用NVM下载
,具体的我就不列出了。浏览器
新建项目文件example.js。服务器
cd ~ touch example.js
使用vim编辑器打开项目文件example.js。
yum install vim vim example.js
输入"i",进入编辑模式,将如下项目文件内容粘贴到文件中。使用"Esc"按钮,退出编辑模式,输入":wq",回车,保存文件内容并退出(这里的0.0.0.0至关于windows的127.0.0.1)
const http = require('http'); const hostname = '0.0.0.0'; const port = 80; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
运行项目
node ~/example.js //也能够用下面的代码后台运行 node ~/example.js &//后台运行 netstat -tpln//查看端口运行状况
在浏览器打开http://IP:80
若是看到Hello World,恭喜部署成功
这里有几个须要注意的
若是你用后台运行之后,这个端口会被占用,如何关闭
netstat -tpln//查看端口pid kill -9 pid
备注 : 此时防火墙是关闭的。(not running
)
当我尝试打开防火墙,将端口添加到例外,并在端口(3000
)上运行时,使用公网IP出现了访问不了的状况,不知道有哪位大神能够大概说明一下缘由?
能够看到端口已经添加到例外了:
firewall-cmd --state
firewall-cmd --permanent --list-port permanent 永久配置
firewall-cmd --permanent --zone=public --add-port=3000/tcp
[root@localhost ~]# firewall-cmd --permanent --list-port // 80/tcp 3000/tcp
firewall-cmd --permanent --remove-port=80/tcp
[root@localhost ~]# firewall-cmd --permanent --list-port // 3000/tcp
systemctl stop firewalld
systemctl start firewalld
前面的全部完成之后,如何让这个node进程一直活着呢?
全局安装cnpm,能够大大的提高下载速度
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装pm2
cnpm install -g pm2
pm2使用
pm2 start example.js //启动服务 pm2 list //查看启动的应用 pm2 show example.js //查看详细信息 pm2 logs //查看当前信息 pm2 stop example.js //中止example pm2 delete example.js //删除example
MongoDB 提供了 linux 各发行版本 64 位的安装包,你能够在官网下载安装包。
下载地址:https://www.mongodb.com/downl...
// 下载 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-amazon-3.6.3.tgz // 解压 tar -zxvf mongodb-linux-x86_64-amazon-3.6.3.tgz // 将解压的包添加到指定目录 mv mongodb-linux-x86_64-amazon-3.6.3/ /usr/local/mongodb
MongoDB 的可执行文件位于 bin 目录下,因此能够将其添加到 PATH 路径中。
export PATH=<mongodb-install-directory>/bin:$PATH
<mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb 。
MongoDB的数据存储在data目录的db目录下,可是这个目录在安装过程不会自动建立,因此你须要手动建立data目录,并在data目录中建立db目录。
如下实例中咱们将data目录建立于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
mkdir -p /data/db
你能够再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:若是你的数据库目录不是/data/db,能够经过 --dbpath 来指定。
若是你须要进入MongoDB后台管理,你须要先打开mongodb装目录的下的bin目录,而后执行mongo命令文件。
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操做和管理的交互式环境。
MongoDB是一个基于分布文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品。
show dbs // 显示全部数据库的列表 use local // 链接到一个指定的数据库,不存在则建立
使用用户名和密码链接登陆到指定数据库:
mongodb://admin:123456@localhost/test
use local // 切换到该数据库下 show tables //查看全部的集合(数据表) db.site.drop() // 删除site这个集合(数据表)
db.createCollection(name,options); // eg: 建立固定大小的集合 db.createCollection('mycol',{ capped:true, autoIndexId:true, // 自动在_id字段建立索引 size:6142800, // 整个集合大小(kB) max:10000 //文档最大个数(数据条数) }); 当你插入文档时,MongoDB会自动建立集合: db.mycol2.inset({"name":"bjw"});
db.collection.update({ <query>, // 查询条件 <update>, // 更新的对象 { upsert:<boolean>, // 不存在是否插入,默认false,true为插入 multi:<boolean>, // 默认false,只更新找到的第一条数据 writeConcern:<document> } }); // eg: db.col.update( {"name":"admin"}, {$set:{"passowrd":"123"}}, {multi:true} // 更新多条数据 );
在执行remove函数以前,先执行find()命令来判断执行的条件是否正确。(习惯问题)
db.collection.remove( <query>, // 条件 <justOne> // justOne:true 只删除找到的第一个文档 );
db.collection.find(); db.col.find().pretty(); // 以格式化的方式显示全部文档 db.col.find( {"likes":{$lt:50}} ).pretty(); // 找到like数小于50的全部文档
gt : greater than
le : less than {$lte:50} ==> 小于等于50
{$gt:50} ==> 大于50
{$gte:50} ==> 大于等于50
利用这两个方法能够实现分页。这个方法只适合小数据的分页,若是是百万级效率会很是低。
1:升序
-1:降序
db.col.find().sort({_id:-1}); // 按照插入数据时间的降序排列
填写主办单位信息
==> 填写网站信息
==>上传资料
==> 办理拍照
==> 提交管局
==> 备案完成