问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

windows node.js怎么搭建服务器

发布网友 发布时间:2022-05-14 20:31

我来回答

2个回答

懂视网 时间:2022-05-15 00:52

最近在做微信的应用号小程序开发,小程序的后台数据接口需要https安全请求,所以需要我的nodejs服务器能够提供https的支持,现在就将整个https服务器的搭建过程说一下

准备条件

一台服务器

SSL证书,小程序规定必须要https协议

服务器后台

Node.js
express
mongodb
pm2

下面以腾讯云主机(centos)为例

安装Node.js

yum install nodejs

也可以安装nvm,用nvm管理nodejs版本

安装git

yum install git

连接到远程代码库

以github为例:

配置用户信息

git config --global user.name youname
git config --global user.email youemail

生成ssh公钥

ssh -keygen -t rsa -C youemail

默认生成目录为 /root/.ssh
在目录中找到id_rsa.pub文件,复制里面的内容,在自己的github上添加ssh

安装mongodb和客户端shell

yum install mongodb-server mongodb -y

创建数据库文件存放目录

mkdir -p /data/mongodb
mkdir -p /data/logs/mongodb

启动mongodb数据库服务

mongod --fork --dbpath /data/mongodb --logpath /data/logs/youlog.log

注意:
如果在启动mongodb服务时在命令后面加上 --auth即会开启认证。
建议开启认证,如果不开会很容易被黑。

--port 12345可以改变数据库的端口号,默认是27017。

--fork是以守护进程的方式启动数据库服务。

--dbpath /data/mongodb 指定数据库文件存放的目录。

--logpath /data/logs/youlog.log 指定日志文件目录。

mongodb的配置文件默认在 /etc/mongod.conf

启动客户端shell

mongo //启动mongodb客户端shell 默认连接test数据库

在shell里可以切换数据库连接,和进行相关操作。

在云服务器以守护进程的方式启动一次数据库服务之后,关闭终端,服务也不会被终止。所以下次不用再启动数据库服务,直接连接就可以。

关闭数据库服务

mongod --shutdown (--dbpath /data/mongodb)

如果启动时加了dbpath而且不是默认的/data/db ,则关闭数据库服务时也应加上dbpath。

创建https服务

npm init //项目初始化

安装express

npm install express --save

实现简单的https服务器

const https = require('https');
const fs = require('fs');
const express = require('express');
const app = express();

let key = fs.readFileSync('youssl.key');
let cert = fs.readFileSync('youssl.crt');

let options = {
 key : key,
 cert : cert
};

const httpsServer = https.createServer(options,app);
httpsServer.listen(443, () => {
 console.log('listening 443 port');
});

app.get('/',(req, res, next) => {
 console.log('someone request');
});

.key和.cert文件为你的ssl认证文件,以腾讯云主机为例,可以有免费1年的ssl证书。

使用mongoose操作数据库

npm install mongoose --save
const mongoose = require('mongoose');
mongoose.connect('mongodb://127.0.0.1/dbname'); //连接数据库

const connection = mongoose.connection;
connection.once('open', (err) => {
 if(err){
 console.log('Database connection failure');
 }else{
 console.log('Database opened');
 }
});

const Schema = mongoose.Schema;

const YourSchema = new Schema({
 name : String,
 age : Number,
});

const yourModel = mongoose.model('yourtable', YourSchema); //在数据库中对应的表为yourtables

let yourDoc = new yourModel({
 name : 'yourname',
 age : 18,
});

注意 如果启动mongodb数据库服务时加上了--auth 则使用mongoose连接数据库时,要加上认证的账户

mongoose.connect('mongodb://youraccount:pwd@127.0.0.1/dbname');

mongodb与关系型数据库的对应关系

Schema相当于表的结构,可以预定义文档的字段类型,不能进行数据库操作。 Modle可以进行一系列数据库操作,相当于表。Model的实例就相当于表的一行。

使用pm2

安装pm2

npm install -g pm2

启动应用

pm2 start app.js

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

在vue中如何编译打包查看index文件

在vue中如何使用Jade模板

在Angular中向组件传递模板

热心网友 时间:2022-05-14 22:00

这个web服务器包括三块,app.js是程序入口,负责响应url请求;route.js是路由,用来分发处理复杂的业务逻辑;system.js是配置文件,用来配置服务器参数,如host、port等

首先来看app.js,引用模块,http处理url请求,url用来解析请求参数和路径,path只是用来匹配路径的扩展名o(╯□╰)o,fs用来读取本地静态文件,剩下两个模块后面详解。

接下来正式创建服务器处理请求,请求大致分两类,一类是静态文件,如xxx.html、xxx.js等等,另一类是进行业务处理,如常见的增删查改操作,这一部分操作交给路由处理,这里用了一个简单的判断逻辑:通过后缀名,后缀名在system.js中配置。

读取本地文件的时候要注意一点,那就是缓存。如果客户端发出重复请求,服务器需要判断文件自上次请求后是否发生了修改,如果未修改返回304,这样可以加快浏览器端的响应速度。这里的判断方式是通过判断请求的header的if-modified-since时间和本地文件修改时间是否一致,如果一致则返回304,否则重置该时间,第一张图是代码,第二张图是通过chrome调试工具看到的请求头部时间。

如果需要进行业务处理,则交给路由处理了。首先路由引入具体的业务逻辑模块,然后通过解析具体的路径名来执行具体的业务逻辑,这里注意的是:由于node.js的并发特性,记得传入回调函数来获得相应的处理结果。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
沙尘暴属于自然灾害吗 星配什么字好听男孩 女孩带星字叫什么名字好听又洋气 带星字优美人名 星字如何取名 带星字的名活泼的 非常潮流的星字名 成华区社保局地址 有什么平价又好用的防晒霜值得安利? 有哪些性价比比较高的物理防晒霜可以安利? 德州市德城区从走四方技术学校到德州学院南校区坐几路公交车? 德州走四方学校在具体位置? 德州走四方学校属于德州的哪一个街道 如何看2020年7月3日以前的卫星地图 德州走四方怎么样啊 德州走四方技工学校的办学成绩 德州走四方技工学校的学校校训 山东德州走四方技工学校怎么样?就业好吗? 德州走四方技工学校的学校规模 德州走四方技工学校的学校简介 德州走四方技校需要考试吗 finereport 哪种web服务器好 微信好友被删了,自己又不知道他的了。怎么找回? 为什么每一次要打电话就会非常的恐惧? 你会不会有电话恐惧症,你认为这一显现的本质原因是什么? 为什么我打电话总是害怕呢,今天给两个同事打电话,没见过的,我总是害怕,心里忐忑,总是想着怎么说 为什么会害怕给客户打电话呢? 有多少人有电话恐惧症?为什么现在的人害怕打电话了呢? 你好,想开个微信小程序商城销售化妆品,需要办理EDI证书还是ICP证书? 1、在微信小程序与社群、朋友圈销售食品,生鲜类的东西,需要办理什么证件? 换还能找回之前被删的好友吗? 注册不了也登录不了怎么办? 进电脑接插件的心得和感受 基金和股票都是投资,两者之间有何关系? 求CS各种模式的插件,要仿CF的生化或别的 cs1.6有没有这样的模式插件 电脑上打开华为手机usb模式的插件 (电)接插件注册商标属于哪一类? 什么叫康家线 cs1.6中的模式 极路由 开发模式 哪些插件不能装了 最近有哪些最潮的情侣名? 索尼微单省电技巧有哪些呢? 港股开户在哪家券商开户比较好? 今天收到一条短信,说是律师事务所的,说欠款逾期,已向*申请诉讼,也没说是什么贷款平台?_百度问一问 谁知道京东白条怎么操作,什么流程? 环境法规符合性评价报告是什么意思 安全标准化里的法律法规的符合性评价 法律法规及规章制度符合性评价记录 职业安全健康管理体系中初始评审过程不包括法律,法规及其他要求内容对吗