const express = require('express');

const swig =require('swig');

const fs = require('fs');

//创建服务器

const server = express();

//让服务器使用中间件处理请求

//参数1:请求的url中的一段重头开始匹配路径

//npm sun start

//处理请求方式

//server.get();

//server.post();

//配置静态资源的方法

//第一个参数的值是url路径的前缀,也是路径的一段值。

//当请求的url跟参数一配置时,被express.static方法处理。静态读取资源的方式处理

server.use('/static',express.staic('./www'));

/*

请求:/static/css/home.css --->(use()处理):/css/home.css--->(express.static('./www')处理):./www/css/home.css

//处理html页面请求
// 配置模板引擎
//1.配置模板存放的目录
// 参数1:关键字,配置模板存放的目录
// 参数2:目录
server.set('views', './htmlDir');
// 2.声明将要使用的模板引擎
// 参数1:固定字段,关键字
// 参数:引擎名字,也跟文件的后缀一致
server.set('view engine', 'html');
// 3.配置模板引擎
// 参数1:使用的引擎名字,固定字段,关键字
// 参数2:引擎
server.engine('html', swig.renderFile);
// 关闭缓存
swig.setDefaults({cache: false});
// 渲染首页
server.get('/', (request, response)=>{
//查询数据库,页面所用到的数据
// 参数1:模板文件路径
// 参数2:模板使用的属性
response.render('index', {
// username: '张三'
goodslist: [
{title: '上衣', price: '299'},
{title: '鞋子', price: '499'},
{title: '袜子', price: '9.9'}
]
});
// swig.renderFile => ./www/home.html
})
/*
前后台不分离:
页面的数据由后台取得,渲染在模板上,再响应客户端
pc端
前后台分离:
页面的数据由前端发送ajax请求跟后台,取得数据后,操作dom,显示在页面
后台管理系统
移动端
*/
// server.get('/home', (request, response)=>{
// let result = fs.readFileSync('./www/home.html');
// response.end(result);
// })
// server.use('/', express.static('./www'));
// server.get('/list', (request, response)=>{
// let result = fs.readFileSync('./www/list.html');
// response.end(result);
// })
// 开启服务器
server.listen(, 'localhost', (error)=>{
if(error){
console.log('服务器出错');
}else{
console.log('服务器启动成功,请访问:http://localhost:8080');
}
})

*/

node的webserver模板的更多相关文章

  1. node向html模板发送数据

    node向html模板发送数据 给模板传递数据 router.get('/', function(req, res, next) { res.render('index', { title: '张三' ...

  2. node 渲染html模板配置

    node 渲染html模板配置 安装swig模块 npm install swig--save - dev 加载swig模块 var swig = require('swig'); 模板配置 //第一 ...

  3. node.js render模板

    在用node组织前端架构和后端的时候,如果不用nginx做反向代理,则会考虑怎么样render模板. 在现有的项目中没有以下几种方式render模板: 1.将.html当做静态文件,如果url定位到哪 ...

  4. windows&lunix下node.js实现模板化生成word文件

    最近在做了一个小程序!里面有个功能就是根据用户提交的数据,自动生成一份word文档返回给用户.我也是第一次做这功能,大概思路就是先自己弄一份word模板,后台接受小程序发过来的数据,再根据这些数据将相 ...

  5. node(基础)_node.js中的http服务以及模板引擎的渲染

    一.前言 本节的内容主要涉及: 1.node.js中http服务 2.node.js中fs服务 3.node.js中模板引擎的渲染 4.利用上面几点模拟apache服务器 二.知识 1.node.js ...

  6. 细说后端模板渲染、客户端渲染、node 中间层、服务器端渲染(ssr)

    细说后端模板渲染.客户端渲染.node 中间层.服务器端渲染(ssr) 前端与后端渲染方式的发展大致经历了这样几个阶段:后端模板渲染.客户端渲染.node 中间层.服务器端渲染(ssr). 1. 后端 ...

  7. 推荐13款javascript模板引擎

    javaScript 在生成各种页面内容时如果能结合一些模板技术,可以让逻辑和数据之间更加清晰,本文介绍 X 款 JavaScript 的模板引擎.(排名不分先后顺序) 1. Mustache 基于j ...

  8. 浅谈 Web 中前后端模板引擎的使用

    前言 这篇文章本来不打算写的,实话说楼主对前端模板的认识还处在非常初级的阶段,但是为了整个 源码解读系列 的完整性,在深入 Underscore _.template 方法源码后,觉得还是有必要记下此 ...

  9. nodemailer实现node发送邮件

    作为一个前端er,利用node独立做一些全栈小项目,是很有效率和必要的. 需要: 做一个活动报名页面,用户填好的表单需要被工作人员收到,一想到把数据存数据库,还需要给工作人员写一个管理页面就觉得很麻烦 ...

随机推荐

  1. giihub上的关于js的43道题目

    参考 https://github.com/lydiahallie/javascript-questions

  2. Python之PIP安装

    Python有两个著名的包管理工具easy_install.py和pip.Python2.7的安装包中自带了easy_install.py,而pip需要手动安装.而在Python3.5之后都是默认安装 ...

  3. Angular学习笔记【如何正确使用第三方组件】

    例如:ng-bootstrap的使用: 1.首先肯定是先要安装,参考官网给出的指令安装即可.(npm install --save @ng-bootstrap/ng-bootstrap) 2.在App ...

  4. 牛客练习赛43F(推式子)

    要点 题目链接 1e18的数据无法\(O(n)\)的容斥,于是推式子,官解,其中式子有点小错误 不必预处理mu,直接按照素数的个数判断正负即可 #include <bits/stdc++.h&g ...

  5. 使用gulp构建工具

    之前一个demo中用的是grunt,照着grunt用到的插件找了下gulp的,总体使用还算顺畅,说实话并不觉得学习成本有降低什么的,差不多.不过也遇到一些问题: 1.gulp.dest()输出目录需要 ...

  6. 《从0到1学习Flink》—— Flink 中几种 Time 详解

    前言 Flink 在流程序中支持不同的 Time 概念,就比如有 Processing Time.Event Time 和 Ingestion Time. 下面我们一起来看看这几个 Time: Pro ...

  7. PHP中文手册2

    11.异常处理 用户可以用自定义的异常处理类来扩展 PHP 内置的异常处理类.以下的代码说明了在内置的异常处理类中,哪些属性和方法在子类中是可访问和可继承的.译者注:以下这段代码只为说明内置异常处理类 ...

  8. contenttype组件、Django缓存机制以及跨域请求

    1 昨日回顾 版本控制 *** (1)url=127.0.0.1/course/?version=v100000 1 versioning_class=QueryParameterVersioning ...

  9. strlen()与mb_strlen()的作用分别是什么

    strlen和mb_strlen都是用于截取字符串的,其中strlen只针对单字节编码字符 如果是多字节编码字符 如gbk和utf8 使用strlen会出现乱码 此时可以使用mb_strlen(),专 ...

  10. input和textarea修改placeholder颜色和字号

    方式1因为每个浏览器的CSS选择器都有所差异,所以需要针对每个浏览器做单独的设定(可以在冒号前面写input和textarea).::-webkit-input-placeholder { /* We ...