Linux服务器中部署Node服务学习-1-部署准备
2018-01-31 15:34
579 查看
一、生产环境所需要素
购买自己的域名(用于映射服务器IP,IP不方便记忆)购买自己的服务器(一台带外网IP的电脑)
域名备案
配置服务器应用环境(用户权限,无密码登录,NodeJS应用环境,必备依赖包,组件,转发SSL证书的生成配置,)
安装配置数据库
项目远程部署发布与更新(低层:拷贝发布,高一级:使用私密部署)
二、Node基础回顾
2.1 以node原生API来搭建一个简单服务应用
创建简单node服务// 引入http模块 const http = require('http') // 设置主页模板 const homePage = ` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Node部署</title> </head> <body> <h1>hello NodeJS,这是主页</h1> </body> </html> ` // 创建网络服务 http.createServer((req,res)=>{ res.statusCode=200; res.setHeader('Content-Type','text/html') res.end(homePage) }).listen(3000,()=>{ console.log('服务启动成功') })
2.2 一个node后台应用项目示例
1)、web项目
技术栈:express+node+mongodb目录结构参考
|_ app.js |_ app |_ controllers // 配置针对请求的自定义中间件 |_ models // mongodb对应生成的model文件 |_ schemas // mongodb对应的不同schema |_ views // 网页渲染模板文件(jade,ejs等) |_ config |_ routes.js //后端路由配置 |_ node_modules |_ public // 前端静态资源 |_ js |_ less |_ libs // 前端所需类库(如boostrap,jquery等) |_ images |_ test |_ .bowerrc |_ .jshintr |_ app.js |_ bower.json |_ package.json
A)在node后台中配置mongo的使用
根据以上目录结构可以看出,针对mongodb的应用,schema,models是分开的,这样才能实现多数据的操作
- 以下为缩略的伪代码
# 1- app.js中引入mongoose并创建连接mongodb的服务 var mongoose = require('mongoose') var dbUrl = 'mongodb://localhost/mydb' mongoose.connect(dbUrl) //连接mongodb # 2-schema中创建各数据文档结构(例:/app/schemas/comment.js) var mongoose = require('mongoose') var Schema = mongoose.Schema var CommentSchema = new Schema({ //创建一个结构 name: { type: String, default: 'hahaha' }, age: { type: Number, min: 18, index: true }, date: { type: Date, default: Date.now }, }) Comment.pre('save',function(next){ //做一些存储前的中间处理(如验证要存储的数据之类) next() }) Comment.statics = { //对schema添加静态方法,用于增,删,改,查的调用 fetch:function(cb){ return this.find({}) .sort() .exec(cb) }, findById:function(id,cb){ return this.findOne({_id:id}) .exec(cb) } } model.exports = CommentSchema # 3- models中引用schema创建model(/app/models/comment.js) var mongoose= require('mongoose') var CommentSchema=require('../schemas/comment') var Comment = mongoose.model('Comment',CommentSchema) //根据结构创建模型 model.exports=Comment # 4- Controllers中引用model并创建中间件用于对前端请求的回复(/app/controllers/comment.js) var mongoose = require('mongoose') var Comment = mongoose.model('Comment') //引入要使用的模型 exports.save=function(req,res){ var _comment = req.body.comment var id = _comment.target if(_comment.cid){ //调用shcema中定义的静态方法findById Comment.findById(_commtn.cid,function(err,comment){ comment.save(function(err,comment){ if(err){ console.log(err) } res.redirect('/index') }) }) } } # 5- 后端路由配置(/config/routes.js) var User = require('../app/controllers/users') var Comment = require('../app/controllers/comment') model.exports=function(app){ //用户发起评论的请求——> 中间件 siginRequired能主是否登录——> 中间件Comment.save进行评论的存储 app.post('/user/comment',User.siginRequired,Comment.save) }
相关文章推荐
- 【服务器搭建环境配置】Linux上部署Nginx服务以及故障排除
- 阿里云服务器linux环境部署node及npm(cnpm)
- 一个服务器上部署两个FTP服务 分类: 软件插件学习 2014-12-25 11:05 129人阅读 评论(0) 收藏
- Linux应用服务器搭建手册—Weblogic服务域的创建与部署
- linux学习笔记-工程师技术:HTTP服务基础(Web服务基本搭建)、网页内容访问、安全Web服务、动态网站的部署
- Linux学习日志day2 Part1——搭建freeIPA服务器实现用户管理以及SSH服务远程登录
- 跟我学习dubbo-在Linux操作系统上手工部署Dubbo服务(5)
- Node部署学习-3-Nginx反向代理Node服务
- 如何在Linux下部署web程序(搭建vsftp服务,搭建sshd 服务器,jdk安装步骤,Tomcat安装步骤,MySQL安装步骤)
- Linux部署Node服务-2-部署过程
- Linux 第十周学习笔记(2)smtp服务的部署
- 跟我学习dubbo-在Linux操作系统上手工部署Dubbo服务(5)
- Linux应用服务器搭建手册—Weblogic服务域的创建与部署
- Linux 服务器部署标准搭建biscuz论坛的环境准备
- Linux学习~部署Apollo服务器(mqtt)
- 从零开始部署Node.js服务至阿里云ECS服务器并实现外网IP访问
- 跟我学习dubbo-在Linux操作系统上手工部署Dubbo服务(5)
- 《统一沟通-微软-实战》-6-部署-1-前端服务器-1-准备 Active Directory 域服务
- linux学习---NFS服务
- 子域中部署exchange服务器为父域用户服务