Node.js 蚕食计划(四)—— Express + SQL Server 搭建电影网
,Express 框架搭建服务,前端页面都是通过 jade 模板引擎生成,为了少写点 css 就引入了 Bootstrap
mssql 模块 中添加这几个字段
然后 npm install 安装依赖项 在 app.js 中能找到这样的一段代码
这里将 views 目录设置为视图目录,用来存放静态页面,并且只识别 .jade 类型的文件 如果直接使用 .html 文件,就需要把第二行代码改为 (,);
常用的模板引擎有 ejs 和 jade,通过 Express 搭建的项目会默认使用 jade,所以这里我们也使用 jade 写模板
如果还不熟悉 jade 的语法,可以看一看这篇文章学习一下 ?
我一共写了这五个模板,其中 error.jade 是 404 页面,layout.jade 是基本结构,包含 header 和 footer index.jade 是首页,detail.jade 是详情页,list.jade 是评论列表 上一篇博客中提到,如果需要引入 css 或者 js,一般是css 和 js 文件拷贝到 public 目录下,然后在页面中引入 项目中需要引入 bootstrap,如果以这种方式引入,还得去 node_modules 目录下找到对应的文件 所以我在 app.js 中添加了这一行代码 这样在 layout.jade 中引入的依赖文件的时候,就可以这么写
页面内容可以先忽略,先把路由给配置好
在 routes 目录下创建三个页面对应的 js 文件
然后在 app.js 中引入
在 app.js 中配置路由结点
然后在浏览器中打开项目,就能正确的渲染页面了
具体的页面开发不再赘述,熟悉了 jade 的语法之后,写起来还是很顺手的 在开发页面的时候,页面上的数据可以先写死,以方便查看页面效果 页面开发完成之后,再把数据挪到数据库里面 在 SQL Server 中创建数据并不复杂,首先打开 SQL Server,连接本地服务器,创建一个登录名
? 然后创建一个数据库 展开刚才新建的数据库,新建表
数据库之前,页面上需要这些参数:
引入 模块
sql = require(<span style="color: #008000;">/<span style="color: #008000;"> GET home page. <span style="color: #008000;">/<span style="color: #000000;">
router.<span style="color: #0000ff;">get(<span style="color: #800000;">'<span style="color: #800000;">/<span style="color: #800000;">'<span style="color: #000000;">,function(req,res,next) { sql.connect(<span style="color: #0000ff;">config).then(() =><span style="color: #000000;"> { <span style="color: #008000;">//<span style="color: #008000;"> 插入SQL语句 <span style="color: #0000ff;">return sql.query <span style="color: #0000ff;">select * from</span><span style="color: #000000;"><span style="color: #0000ff;"> mytable</span> }).then(result =><span style="color: #000000;"> { res.render(<span style="color: #800000;">'<span style="color: #800000;">index<span style="color: #800000;">'<span style="color: #000000;">,{ title: <span style="color: #800000;">'<span style="color: #800000;">WiseWrong<span style="color: #800000;">'<span style="color: #000000;">,movies: result.recordset <span style="color: #008000;">//<span style="color: #008000;">查询结果 <span style="color: #000000;"> }); sql.close(); <span style="color: #008000;">//<span style="color: #008000;"> 断开数据库的连接,很关键 }).<span style="color: #0000ff;">catch(err =><span style="color: #000000;"> { res.render(<span style="color: #800000;">'<span style="color: #800000;">error<span style="color: #800000;">'<span style="color: #000000;">); console.log(<span style="color: #800000;">'<span style="color: #800000;">出错了 <span style="color: #800000;">'<span style="color: #000000;">,err); }) sql.on(<span style="color: #800000;">'<span style="color: #800000;">error<span style="color: #800000;">',err =><span style="color: #000000;"> { res.render(<span style="color: #800000;">'<span style="color: #800000;">error<span style="color: #800000;">'<span style="color: #000000;">); console.log(<span style="color: #800000;">'<span style="color: #800000;">出错了 <span style="color: #800000;">'<span style="color: #000000;">,err); }) }); 上面的代码是直接写在 index.js 里面了,如果每个页面都写一套,肯定会有大量的重复性代码,所以一定得封装一下 如果是提交表单,只需要把接口地址改一改,然后处理数据,编写SQL就行
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何在C中添加多行注释时在Visual Studio 2010中
- swift – UNTimeIntervalNotificationTrigger ne
- TDD--Test Driven Development(测试驱动开发)
- XML和HTML的区别
- Oracle Time Model Statistics(时间模型统计)
- c# – 具有默认构造函数的Unity Framework IoC
- 表示空XML元素的正确方法是什么?
- Cocos2d-x之getVisibleSize,getContentSize,bou
- xStream转换XML、JSON
- ruby-on-rails – RSpec失败,因为它认为ActiveRe