工欲善其事,必先利其器。在开始本次部署新浪云nodejs项目之前,请先做好以下准备工作:

1.注册一个新浪微博账号!
2.使用注册好的新浪微博账号,登录新浪云网站:http://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKW7roB4gWZ_eIVrfrKydg.html
3.在你的计算机上安装git,如何安装请参考廖雪峰老师的git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
4.请确定你的项目已经调试好,能够正常运行!
5.准备好你的数据库文件。


这里我假设大家已经完成了以上5步,正式开始线上项目的部署!
1.登录进入新浪云网站之后,系统一般会推荐你实名认证,如果是正常认证需要至多3天时间,加急认证是2小时之内,不过似乎要额外付费,大家正常认证即可。

提交认证资料之后就不用管它了,等它自己认证通过。在认证通过之前,如果别人访问你的线上项目是会提示该网站未经认证,请谨慎访问。


2.点击左上角的控制台,在弹出的下拉菜单中选择云应用SAE。


3.进入云应用SAE之后,点击创建新应用。这里我已经创建好了一个应用,如果大家是第一次使用是没有下方的应用信息的。


4.中间会弹窗一个什么规范信息,确认之后继续创建,选择nodejs开发语言,环境配置和示例个数根据自己的情况来。因为这里我只需要作为一个示例,所以都选择最低的标准,可以看到价格是0.03元/小时。一定要填写应用信息,二级域名那里就是以后访问的域名。


5.确认创建之后,会返回应用管理界面。在代码管理界面,我们可以看到非常重要的信息,系统分配给你的新浪云git仓库信息。


6.新浪云的操作先告一段落。接下来我们在电脑上新建一个空的文件夹,用来存放你的项目文件。
为什么不直接使用已有的项目文件夹呢 ?因为万一你操作失误,把项目给毁了我可不负责的。


7.打开cmd,进入到当前目录下。使用git init 初始化当前文件夹。
成功之后可以看到自动建立了一个隐藏文件夹.git,这是git的版本管理仓库,千万不要删除和修改里面的文件。想详细了解这块知识的请移步廖雪峰老师的git教程,链接在最前面。

8.然后将你的项目代码全部移动到该目录下,注意不要node_modules文件夹,哪怕它再小,不要,不要,不要!
第一:因为我们需要检查一下你的package.json中是否已经完整的记录了运行该项目所需要的所有依赖模块。
第二:因为项目部署上线的时候,是不能上传node_modules文件夹的,新浪云的服务器会自动根据你的package.json中的dependencies来创建node_modules文件夹。

9.如果能够确保自己的项目中package.json完整的记录了所有依赖模块,那么这一步可以跳过不看。如果不确定的同学们,请在该目录下,打开cmd,运行npm i,系统会根据package.json文件自动生成 node_modules依赖包。

npm i

然后请确认依赖安装完毕之后,你的项目是否能够正常运行。如果能,说明你的package.json没问题,如果不能运行,那么请根据项目报错原因,查找缺少哪个模块,然后使用 npm i --save 包名称 ,这样会将安装的包记录在package.json中。直到项目运行成功,package.json文件完整无误为止!这里一定要弄清楚,否则项目根本无法上传。


10.配置package.json文件。
首先将你的服务器入口文件名称改为index.js,然后在package.json中,指定你开发项目时所用的nodeJS版本,如果不指定,那么新浪云服务器会按照最高版本的nodeJS来运行,很可能会导致后面的镜像文件配置失败,

然后在scripts中设置start启动命令,node index.js
在这里也可以看到你的项目依赖哪些模块。


11.将你项目中服务器的监听端口改为5050,因为新浪云的服务器运行端口是5050


12.请确保此时你能够正确运行 npm install命令 和npm start命令,如果是cmd命令行工具应该可以两条命令一起执行:
npm install && npm start,如果是Powershell则只能分开运行。运行后可以先看看你的项目服务器是否运行正常,通过网络地址查看一下项目文件或者图片,能看得到就说明没问题。
确定项目代码没有问题了,请一定记得删除node_modules文件,删除node_modules,删除node_modules,删除node_modules。否则后面会报错,如果只看报错提示是很难找到错误根源的。


13.修改数据库链接文件,因为新浪云使用的数据库信息和你本地使用的不一样。这里我修改的是pool.js

这里的信息需要登录你自己的新浪云数据库后台查看,如果没有创建过新浪云数据库的同学,请跟着下面的步骤一起创建一下,先回到新浪云的应用管理后台。

一张图胜过千言万语,直接看图吧。

点击创建

点击确认。等待系统初始化。


点击红框处的管理,进入数据库管理后台。

点击选择文件,导入你的sql数据文件,然后右下角执行。
等待片刻,导入完毕,可以看到你的数据库数据了。

回到应用管理后台,点击 共享型MySQL,点击详情。

在这里你就可以看到端口号,主库地址,数据库名称,用户名称,密码等连接数据库必备的信息。填到前面你的数据库链接文件中即可,这里我修改的是pool.js。

这一块似乎好长,真是累。不过快了。


14.回到你的电脑,在之前打开的cmd中,运行以下命令:
git remote add sae +你之前看到的git仓库地址!在第5部的时候有提到过!

git remote add sae https://git.sinacloud.com/onekeyy

然后输入git remote,查看远程库的名称是否为sae


15.输入git add . 将目录下所有文件添加到仓库,

然后输入git commit -m “this is my first project”,将刚刚添加的文件提交到本地的git仓库(对,就是前面不要你删除修改的那玩意),后面双引号中的内容为对本次提交进行的备注。

你会看到N多文件被提交上去了,那些就是你的项目文件。


16.差不多到最后了,将本地仓库提交到远程sae仓库中。
输入git push sae master
这时系统会弹窗要求你输入用户名和密码,有些版本不会弹窗,要求你直接在cmd中输入用户名和密码。
这里因为我已经输入过了,所以不会再要求输入了。

你问用户名和密码是什么?
就在前面第5部中提到的git仓库信息,上面有你的用户名,密码就是你注册时填写的安全密码!
如果看到以下界面,那么恭喜你已经部署成功了!!

如果你出现以下错误:
error: RPC failed; curl 55 SSL_write() returned SYSCALL, erWfrno = 10053
atal: the remote end hung up unexpectedlyB | 2.00 KiB/s

那么仍然要恭喜你,因为这个坑已经被我填上了,你不用再东翻西找了!
出现该问题的原因是你git提交的时候将node_modules也上传了,要么建立.gitignore文件,提交的时候忽略node_modules文件夹。要么就干脆直接删了node_modules,我似乎啰嗦了很多遍?
因为这个问题我查找了n多资料,问了n多人,最后还是新浪客户给我的回复解决了问题。笑哭。客服关键时候还是很给力的 ,而且那么晚了还在加班,确实不容易,一个大大的五星好评。


17.至此,新浪云部署nodeJS项目已经结束了,打开应用管理后台,点击容器管理,可以看到你的项目实例。打开控制台应用管理,可以看到你的项目网址。

尝试一下访问静态资源目录中的图片,可以访问!

结语:

终于写完了,真的好累。由于我的项目是前后端完全分离的,所以细心的同学应该可以发现,这里上传的其实只是服务器端代码,如果大家的前后端代码是在一起的,那么前端代码放在静态资源目录下面就可以了。如果前端代码不想和服务器端代码放在一起,那么请看下集【记一次完整的阿里云虚拟服务器的上传前端代码经历(填坑)】和【新浪云部署中如何修改已经上线的代码NodeJs版】
链接…等我写好了再发出来。

最近收到反馈有些朋友在git push时候马上报错“failed to push some refs to”,错误原因是你之前在远程库中上传了一些内容,然后又换了一个新的本地仓库导致两个库之间没有关联,解决办法请参考之前写的另外一篇文章: https://blog.csdn.net/SilenceJude/article/details/84969237

记一次完整的新浪云部署nodejs项目上线完整流程及填坑处理!相关推荐

  1. 通过新浪云部署NideShop微信小程序商城(基于Node.js+MySQL+ThinkJS)

    本文档为微信小程序商城NideShop项目的安装部署教程(GitHub),欢迎star 一.购买新浪云SAE 为什么选择SAE? 免费二级域名和支持https访问,不用备案,可用于做微信小程序服务器. ...

  2. 新浪云python示例_新浪SAE部署python项目

    SAE实际上就是个多节点的虚拟主机,跟云主机差不多,只不过SAE的节点比一般的云主机要多,把网站程序布署在SAE上比自己用独立的服务器稳定性和性能要高很多.将自己用python开发的博客项目放在SAE ...

  3. 新浪云sae springboot项目部署

    刚刚把自己的公众号项目整到 服务器上. 记录一下. 1. 注册新浪云2. 创建应用(这些操作相对简单,更着步骤走就好.不多讲)3. (创建数据库 共享独享都行) 已上是准备操作. 一.项目设置 因为是 ...

  4. 新浪云node加mysql_通过新浪云部署NideShop微信小程序商城(基于Node.js+MySQL+ThinkJS)...

    一.购买新浪云SAE为什么选择SAE? 免费二级域名和支持https访问,不用备案,可用于做微信小程序服务器. 选择对应的部署环境 自定义 -> 开发言语:自定义 -> 运行环境:云容器 ...

  5. 通过新浪云部署Node.js微信小程序商城(不用买域名、不用备案、不用配置https)

    生产环境推荐使用阿里云服务器,阿里云代金券领取 最近更新时间:2019-03-09 原文链接:https://nideshop.com/documents/nideshop-manual/deploy ...

  6. 通过新浪云部署Node.js微信小程序商城(不用买域名、不用备案、不用配置https)...

    本文档为微信小程序商城NideShop项目的安装部署教程(GitHub),欢迎star 一.购买新浪云SAE 为什么选择SAE?免费二级域名和支持https访问,不用备案,可用做微信小程序服务器. S ...

  7. java新浪云服务器有什么jar包_新浪云部署java web程序 注意事项

    在新浪云新手指南里有部署java的示例,但是对一个新手来说难免会有一些地方犯错,折腾了好长时间才把自己的java web部署到了新浪云.这里主要写一些我遇到的问题与第一次使用新浪云的朋友分享一下. 首 ...

  8. Ajax(使用 jQuery,php)异步上传图片(二进制流)存储到新浪云平台storage

    这两天实现了一个发布图片的功能,可谓是一波三折,bug不断啊,趁刚搞定,赶紧把过程写下来,顺便把代码传过来.记录了图片在本地的存储和 将本地的图片以二进制流提交到后台php文件 在html文件中的操作 ...

  9. PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——建立微博应用的过程

    PHP+新浪微博开放平台+新浪云平台(SAE) --新浪微博应用开发的一个解决方案 一.PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础 二.建立微博应用的过程 三.PHP SDK中Demo程 ...

最新文章

  1. zookeeper和duboo 没用
  2. Openstack组件实现原理 — Glance架构(V1/V2)
  3. 2021年中国计算机视觉人才调研开启啦,诚邀各位开发者们参与~
  4. Java-String类型的参数传递问题
  5. java关键字 valotile_Java内存模型-jsr133规范介绍,java中volatile关键字的含义
  6. javascript option 菜单图标_苹果电脑上神奇的Option键 巧用option键提升效率
  7. python打开控制台运行_如何在IPython控制台中默认运行文件而不是终端?
  8. ECharts 定制 label 样式
  9. javascript正则表达式复习
  10. 对象数组根据某属性列的灵活排序
  11. 这个Javascript“要求”是什么?
  12. 单幅RGB图像+Depth深度图得到点云模型示例
  13. OpenLayers3基础教程——OL3 介绍interaction
  14. 随机生成姓名,姓名生成器
  15. JS开发3D建模软件
  16. netty权威指南学习
  17. 基于RPGMakerMV的JavaScript基础-5
  18. 小学计算机房荷载,资深暖通设计师总结的常用参数参考值,新手们都说感谢大神支招...
  19. RAP2 详细部署、操作指南
  20. Android O 自定义prop的问题小总结

热门文章

  1. [IOS APP]小豆子幽默丛书
  2. 爬虫项目:获取movie
  3. 实现一个C语言版本的圣诞树(附源代码)
  4. ft232h引脚_基于FT2232H的USB-RS232转换模块设计
  5. FT2232作为JTAG烧录器的使用步骤详解
  6. kaiketwoday
  7. GameFramework篇:StarForce全解读(前言)
  8. 《消费者行为学》读后感_20171129
  9. 10000+门店的蜜雪冰城,帮你找回软件赚钱的初心
  10. 已知IP地址和子网掩码求出网络地址、广播地址、地址范围和主机数