文档章节

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

蓝奔z
 蓝奔z
发布于 2017/02/16 11:58
字数 1628
阅读 996
收藏 0
点赞 0
评论 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
博文 8
码字总数 4196
作品 0
广州
程序员
Node.JS是什么?

百度上是这么说的:Node.js是一个可以快速构建网络服务及应用的平台。该平台的构建是基于Chrome‘s JavaScript runtime,也就是说,实际上它是对Goole V8引擎进行了封装。 Node.js的优点 no...

小陈同学 ⋅ 2014/03/11 ⋅ 0

细谈Node.js----我的笔记

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

crossmix ⋅ 2016/01/04 ⋅ 0

关于开发node.js个人网站,你需要的知识都在这里了

前言 nodejs.jpg 从2016年5月份开始,接触Node.js到现在已经有一年半的时间了。从最初的懵懵懂懂,到一篇一篇地啃大部头、看教程,再到自己开始写笔记、写教程,以及上手做了一些小功能,最终...

Mike的读书季 ⋅ 2017/12/01 ⋅ 0

使用 Docker 和 Elasticsearch 构建一个全文搜索应用程序

如何在超过 500 万篇文章的 Wikipedia 上找到与你研究相关的文章? 如何在超过 20 亿用户的 Facebook 中找到你的朋友(并且还拼错了名字)? 谷歌如何在整个因特网上搜索你的模糊的、充满拼写...

作者: Patrick Triest ⋅ 05/01 ⋅ 0

基于node · Express框架总结

————— --- --- —————— Express Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,可以轻松的创建各种 web 或者移动端应用 提供了一个轻量级模块,把nodejs的htt...

搜狗搜到你 ⋅ 2017/11/15 ⋅ 0

编程类开放书籍荟萃(转载)

关于开源图书有人在网络上做了大量整理,本文为大家刊载《免费的编程中文书籍索引》 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该阅读的非编程...

行者PHPer ⋅ 2016/10/09 ⋅ 0

vue入门环境搭建及demo运行

vue简介: Vue.js 是一套构建用户界面的渐进式框架。他自身不是一个全能框架——只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。在与相关工具和支持库一起使用时,V...

挑战者666888 ⋅ 05/22 ⋅ 0

Node.js VS PHP:Web 开发的史诗级对决,你支持谁?

现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 Ja...

uzv80px5v412ne ⋅ 2017/12/29 ⋅ 0

最流行的编程语言 JavaScript 能做什么?

首先很遗憾的一点是,“PHP虽然是最好的语言”,但是它不是最流行的语言。 同时对不起的还有刚刚在4月TIOBE编程语言排行榜上上榜的各个语言: 你们都很棒,但是你们都担当不了这个大任。 在开...

oschina ⋅ 2016/04/28 ⋅ 36

Node.js VS PHP — 你应该选择哪一个?

现在,Web开发公司和开发人员可以选择多种技术栈来构建Web应用程序。早期网络发展,不同的技术被用于前端和后端开发。但是,随着Node.js的发布,布局发生了变化,因为它允许开发人员使用 Ja...

周其 ⋅ 2017/12/23 ⋅ 80

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java NIO之字符集

1 字符集和编解码的概念 首先,解释一下什么是字符集。顾名思义,就是字符的集合。它的初衷是把现实世界的符号映射为计算机可以理解的字节。比如我创造一个字符集,叫做sex字符集,就包含两个...

士别三日 ⋅ 26分钟前 ⋅ 0

Spring Bean基础

1、Bean之间引用 <!--如果Bean配置在同一个XML文件中,使用local引用--><ref bean="someBean"/><!--如果Bean配置在不同的XML文件中,使用ref引用--><ref local="someBean"/> 其实两种......

霍淇滨 ⋅ 31分钟前 ⋅ 0

05、基于Consul+Upsync+Nginx实现动态负载均衡

1、Consul环境搭建 下载consul_0.7.5_linux_amd64.zip到/usr/local/src目录 cd /usr/local/srcwget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip 解压consu......

北岩 ⋅ 34分钟前 ⋅ 0

Webpack 4 api 了解与使用

webpack 最近升级到了 v4.5+版 01 官方不再支持 node4 以下版本 官方不再支持 node4 以下版本官方不再支持 node4 以下的版本,所以如果你的node版本太低,先开始升级node吧!话说node10 ...

NDweb ⋅ 43分钟前 ⋅ 0

使用nodeJs安装Vue-cli

Vue脚手架就是一个Vue框架开发环境 脚手架的意思是帮你快速开始一个vue的项目,也就是给你一套vue的结构,包含基础的依赖库,只需要 npm install就可以安装,让我们不需要为了编辑或者一些其...

木筏笔歆 ⋅ 今天 ⋅ 0

【微信小程序开发实战】0x00.开发前准备工作

写在开始 本人资深后端码农一枚,近期项目需求,接触到了微信小程序,将学习过程整理成文分享给小伙伴们,由于是边学边整理难免有表述不对的地方,望大家及时指正,感谢。 本人微信号: dream...

dreamans ⋅ 今天 ⋅ 0

linux redis的安装和php7下安装redis扩展

安装redis服务器 (1)下载安装包: $ wget http://download.redis.io/releases/redis-2.8.17.tar.gz (2)编译程序: $ tar xzf redis-2.8.17.tar.gz $ cd redis-2.8.17 $ make $ cd src &&......

concat ⋅ 今天 ⋅ 0

Guava EventBus源码解析

一、EventBus使用场景示例 Guava EventBus是事件发布/订阅框架,采用观察者模式,通过解耦发布者和订阅者简化事件(消息)的传递。这有点像简化版的MQ,除去了Broker,由EventBus托管了订阅&...

SaintTinyBoy ⋅ 今天 ⋅ 0

http怎么做自动跳转https

Apache 版本 如果需要整站跳转,则在网站的配置文件的<Directory>标签内,键入以下内容: RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://%{SERVER_NAME......

Helios51 ⋅ 今天 ⋅ 0

Python爬虫,抓取淘宝商品评论内容

作为一个资深吃货,网购各种零食是很频繁的,但是能否在浩瀚的商品库中找到合适的东西,就只能参考评论了!今天给大家分享用python做个抓取淘宝商品评论的小爬虫! 思路 我们就拿“德州扒鸡”...

python玩家 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部