nodejs 搭建简易服务器的图文教程(推荐)


Posted in NodeJs onJuly 18, 2017

nodejs 搭建简易服务器的图文教程(推荐)

www文件夹下

nodejs 搭建简易服务器的图文教程(推荐)

template文件夹下

nodejs 搭建简易服务器的图文教程(推荐)

server.js代码:

const express=require('express');
const static=require('express-static'); //托管静态文件
const cookieParser=require('cookie-parser');//解析cookie
const cookieSession=require('cookie-session');
//解析session
const bodyParser=require('body-parser');

//解析post数据
const multer=require('multer');
const consolidate=require('consolidate');
const mysql=require('mysql');

//连接池
const db=mysql.createPool({host: 'localhost', user: 'root', password: '123456', database: 'blog'});

var server=express();
server.listen(8080);

//1.解析cookie
server.use(cookieParser('sdfasl43kjoifguokn4lkhoifo4k3'));

//2.使用session
var arr=[];
for(var i=0;i<100000;i++){
 arr.push('keys_'+Math.random());
}
server.use(cookieSession({name: 'zns_sess_id', keys: arr, maxAge: 20*3600*1000}));

//3.post数据
server.use(bodyParser.urlencoded({extended: false}));
server.use(multer({dest: './www/upload'}).any());

//4.配置模板引擎
//输出什么东西
server.set('view engine', 'html');
//模板文件放在哪儿
server.set('views', './template');
//哪种模板引擎
server.engine('html', consolidate.ejs);

//接收用户请求
server.get('/', (req, res, next)=>{
 //查询banner的东西
 db.query("SELECT * FROM banner_table", (err, data)=>{
 if(err){
  res.status(500).send('database error').end();
 }else{
  res.banners=data;

  next();
 }
 });
});
server.get('/', (req, res, next)=>{
 //查询文章列表
 db.query('SELECT ID,title,summery FROM article_table', (err, data)=>{
 if(err){
  res.status(500).send('database error').end();
 }else{
  res.articles=data;

  next();
 }
 });
});
server.get('/', (req, res)=>{
 res.render('index.ejs', {banners: res.banners, articles: res.articles});
});

server.get('/article', (req, res)=>{
 res.render('conText.ejs', {});
});



//4.static数据
server.use(static('./www'));

index.ejs代码:

<div class="content">
 <div class="banner">
  <ul class="clearfix">
  <% for(var i=0;i<banners.length;i++){ %>
  <li>
   <img src="<%= banners[i].src %>" alt=""/>
   <div class="text-box">
   <h2><%= banners[i].title %></h2>
   <p><%= banners[i].sub_title %></p>
   </div>
  </li>
  <% } %>
  </ul>
  <ol>
   <li class="active"></li>
   <li></li>
   <li></li>
  </ol>
 </div>
 <div class="newsList">
  <ul>
  <% for(var i=0;i<articles.length;i++){ %>
  <li>
   <a href="/article?id=<%= articles[i].ID %>" rel="external nofollow" >
   <h2><%= articles[i].title %></h2>
   <p><%= articles[i].summery %></p>
   </a>
  </li>
  <% } %>
  </ul>
 </div>
</div>

以上这篇nodejs 搭建简易服务器的图文教程(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
PHPStorm 2020.1 调试 Nodejs的多种方法详解
Sep 17 NodeJs
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
Jan 01 NodeJs
NodeJS实现阿里大鱼短信通知发送
Jan 17 NodeJs
浅谈Nodejs中的作用域问题
Dec 26 NodeJs
Nodejs+Socket.io实现通讯实例代码
Feb 13 NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 NodeJs
NodeJS创建最简单的HTTP服务器
May 15 NodeJs
详解nodeJS之路径PATH模块
May 31 NodeJs
nodejs前端模板引擎swig入门详解
May 15 NodeJs
nodejs 使用nodejs-websocket模块实现点对点实时通讯
Nov 28 NodeJs
Nodejs封装类似express框架的路由实例详解
Jan 05 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 NodeJs
nodejs密码加密中生成随机数的实例代码
Jul 17 #NodeJs
nodejs构建本地web测试服务器 如何解决访问静态资源问题
Jul 14 #NodeJs
基于nodejs+express4.X实现文件下载的实例代码
Jul 13 #NodeJs
详解nodejs的express如何自动生成项目框架
Jul 12 #NodeJs
nodejs中sleep功能实现暂停几秒的方法
Jul 12 #NodeJs
nodejs中解决异步嵌套循环和循环嵌套异步的问题
Jul 12 #NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 #NodeJs
You might like
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php实现的双向队列类实例
2014/09/24 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
jQuery的学习步骤
2011/02/23 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
Bootstrap表单布局
2016/07/19 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
js获取浏览器的各种属性
2017/04/27 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
vue中各组件之间传递数据的方法示例
2017/07/27 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
[01:15:12]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#4Newbee VS CDEC
2016/03/03 DOTA
Python求两个文本文件以行为单位的交集、并集与差集的方法
2015/06/17 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
出纳员的岗位职责
2014/02/22 职场文书
户籍证明书标准模板
2014/09/10 职场文书
办公室主任四风问题对照检查材料思想汇报
2014/09/28 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
JS中如何优雅的使用async await详解
2021/10/05 Javascript
Java实现二分搜索树的示例代码
2022/03/17 Java/Android