文档章节

nodejs学习——应用nodejs+express+mysql构建简易web应用服务端

蓝奔z
 蓝奔z
发布于 2017/02/16 11:58
字数 1628
阅读 1263
收藏 0

在java web玩了一段时间之后,对新的服务端技术框架进行探究,这次试用nodejs+express+mysql试试。听说nodejs很强大很简单,就试试它如何简单。

 

day1

node js先装,好像稳定的版本去到了6.9.5,然后我下载下来其实简单安装一下即可。好像有安装版和npm版的,是不一样的安装方式而已。去nodejs官网上面找了个简易的例子,一试就行了,启动起来能访问到"hello world!"

 

day2

express是nodejs的一个很实用的框架,是以nodejs为底层,一键构建nodejs的一个实用框架。要使用npm安装,express官网上也有实用的代码demo,一启动也可以直接访问到"hello world!"

 

day3

有语言有api之后,我就差ide了,然后下了个webstorm来使用,看看能不能直接在webstorm里面建项目跑项目等等。实际上这个环境我部署了很久,都卡在webstorm配置nodejs版本的source code里面。其实这个东东最好做的就是去官网下一个64位的压缩包,解压之后直接用,然后打开webstorm的setting,翻到nodejs那个设置,将路径配置好,再另外下载nodejs的src包,这个直接在webstorm里面设置下载就好了,它的url是现成的。

环境终于好了!

接下来就是工程的调试。

建工程的时候发现会遇到“Express version is unavailable”,这样一直创建不了工程。那么解决方法如下:

1、安装express:cmd->npm install express -g

2、安装express-generator:cmd->npm install express-generator -g

装完了还是不行。。。最后百度了一下,居然是因为代理的原因。。。
npm的代理设置的原因
查看配置:npm config list
如果有:registry = "https://registry.npm.taobao.org/"
执行:npm config delete registry
然后刷新就好了。。。居然就好了!

新建工程目录结构如下哈哈哈。

后来建项目的时候对比了一下express的模板引擎,jade虽然简洁但是不好用,确实看的也有点蒙圈,而ejs看起来就很好上手了,一般跟普通的html差不多,而且可以用一些简单的逻辑语言来用,看起来其实很像jsp那种。最后还是用了ejs哈哈哈,因为懒,如果有跟自己知道的相似的,就没必要去搞别的啦哈哈哈。

具体ejs的语法用法等等,可以参考这个:http://www.cnblogs.com/zhongweiv/p/nodejs_express.html

 

day4

自己模仿着写了个页面却乱码

原来是要建express项目的时候,文件是gbk的编码,在webstorm右下角有显示

需要将它改成utf-8,而且为了方便,在webstorm的file->setting->editor->file encoding这里将参数也设成utf-8

好了:)

最后如果担心页面的问题,在页面的ejs文件里面head标签上面声明头部:

堵死乱码的渠道。在这里可以声明一下,乱码的问题就是由于编码解码的方式对不上号,在前后端数据传输的过程中最可能出现,因此需要在http的请求、返回前设置;另外在编译成可执行文件前的文件编码也可能会产生明明是这个编码,为什么老是变成别的编码的问题,因此全部统一设置成utf8,是一种比较一劳永逸的方法。另外写日志的过程中也有可能乱码,但是那个就跟系统底层的系统编码相关,与程序运行时数据传输的编码时两个地方,分别注意即可。

 

day 5

(一)    想要加一个mysql的支持到nodejs里面,后来才发现,原来以下两个命令安装的mysql的支持是不一样的,api等用法也不太一样。应该都能达到目的但是写法不一样吧。(如果已经建立项目的话,要到项目根目录下面再执行一遍,然后webstorm里面刷新一下就有了这个模块的支持)

npm install mysql    //个人觉得这个比较好用,支持线程池等,下面的demo例子也是用这个mysql的

npm install node-mysql    //node-mysql里面的api比较原生态,好像不太好用。

给大家分享另一个链接,也算是亲测可用吧,呵呵http://www.jianshu.com/p/0a161f341771

各个配置好后,其实它查询等用法还是比较简单的:

其中userSQL.queryAll实际上是一个字符串变量,你直接写sql语句也行;其中中间的那个参数是参数数组,例如你要查询这样的:select * from t_user where user_id=?,这样你的中间的那个参数就是:['1']这样子,就传占位符的值过去,按占位符的顺序来。后面的那个function就是回调函数啦。

最后启动之后测试一下:

就能查询到想要的参数。

服务端就是这样写的啦,待会探讨一下nodejs+express这样的怎么写前端。

(二)首先我摸了下其实它界面是这样的,在views下面

ejs是我选用的页面模板,其实写起来像html那样,而且有很多“<%%>”这样的就像jsp一样可以把服务端变量等塞进去表达,例如:

而这些变量实际上跟服务端的变量挂钩:

实际上routes是整个项目中算是中间件那样的存在,相当于,app.js将所有的routes里面的加载进来,这样routes下面写服务端不同模块的功能,例如用户管理算一个业务功能模块我们就可以在users.js里面完成,而选择页面(我自己瞎编的一个业务哈哈哈)算一个业务功能模块我们就可以在choice.js里面写。

 

接下来想加上动态的前端交互等脚本语句,实现例如点个按钮怎么怎么地啊之类的。

首先看了下ejs的文件实际上跟html很像,那么可以像html一样的写:

 

页面效果:

(1)

(2)alert出来

至此基本完成,因为看choice.js里面添加了jquery的支持,那么习惯写htmljquery的童鞋们就可以大大方方写ajax等啦。服务端就是那些routes里面的js进行实现。

© 著作权归作者所有

共有 人打赏支持
蓝奔z

蓝奔z

粉丝 0
博文 15
码字总数 7578
作品 0
广州
程序员
私信 提问
在Windows Azure中使用Node.js,开启云计算之旅!

Node.js 是一个很好的平台,在过去的两年里它越来越受欢迎。它提供了一个服务器端的理想的构建高度可扩展性和高性能网络应用程序(不论是在非云端或者是在云端)的JavaScript编程模型。它的突...

晨曦之光
2012/03/09
0
0
PayPal从Java切换到JavaScript

已经决定使用JavaScript开发Web应用程序,从浏览器一直到后端服务器,并放弃了使用JSP/Java编写的遗留代码。 PayPal技术总监Jeff Harrell在两篇博文中(解放我的UI第一部分:Dust JavaScript...

greki
2014/05/04
0
0
细谈Node.js----我的笔记

学习心得 如何利用Javascript做为服务端脚本,通过Nodejs框架web开发。Nodejs框架是基于V8的引擎,是目前速度最快的 Javascript引擎。chrome浏览器就基于V8,同时打开20-30个网页都很流畅。N...

crossmix
2016/01/04
221
0
揭秘Node.js深受欢迎的原因

Node.js是一项服务器技术,它用来构建和运行Web应用,这和ASP.NET,Ruby on Rails或Spring框架做的工作是类似 的。它使用JavaScript作为主要的开发语言,有一个自带的轻量级Web服务器,还有N...

kouxunli1
2014/12/01
0
0
前端每周清单第 47 期:NPM 年度报告与 2018 展望,Airbnb React Router 实践

前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公...

王下邀月熊
01/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

w, vmstat, top, sar, nload命令查看系统状态信息

w/uptime 查看系统负载 cat /proc/cpuinfo 查看cpu核数 vmstat 监控系统状态,用法 vmstat 1,关键的几列: r, b, swpd, si, so, bi, bo, us, wa top 查看进程使用资源情况 top -c 显示详细的...

野雪球
今天
1
0
小白创建一个spring boot项目

进入 https://start.spring.io/

lilugirl
今天
2
0
Alibaba Java诊断利器Arthas实践--使用redefine排查应用奇怪的日志来源

背景 随着应用越来越复杂,依赖越来越多,日志系统越来越混乱,有时会出现一些奇怪的日志,比如: [] [] [] No credential found 那么怎样排查这些奇怪的日志从哪里打印出来的呢?因为搞不清...

hengyunabc
今天
2
0
home hosts

home hosts lwk@qwfys:~$ cat /etc/hosts127.0.0.1 localhost127.0.1.1 qwfys192.168.56.101vm600.qwfys.com39.108.212.91alpha1.ppy.com39.108.117.122alpha2.p......

qwfys
今天
3
0
大数据教程(6.1)hadoop生态圈介绍及就业前景

1. HADOOP背景介绍 1.1、什么是HADOOP 1.HADOOP是apache旗下的一套开源软件平台 2.HADOOP提供的功能:利用服务器集群,根据用户的自定义业务逻辑,对海量数据进行分布式处理 3.HADOOP的核心组...

em_aaron
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部