仿掘金官网经验(二)| 青训营笔记

167 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第8天。

以下是在写仿掘金官网NodeJS服务器的时候遇到的一些问题还有相关的解决方案。

Nodejs读取文件

nodejs读取文件会有三种方式:

  • fs.readFile(callback)以及fs.readFileSync(),一个为同步阻塞函数,一个为异步函数
  • fs.open(),可读可写
  • fs.createReadStream(),适合大文件的读写

关于有换行字符串在对象中的存储形式

在对象的字符串元素中存储具有换行的字符串,字符串会被存储为行字符串+**换行符(\r\n)**的形式,这种形式在读取大量字符文件时很常见。

例如,如下字符串

## 666
放暑假了
真好

如果存到如下对象的essay属性中

let article = {
    author: "掘金",
    name: "",
    essay: "",
    category: "",
    goodtext: "",
    time: "",
    browse: 0,
    like: 0,
    comments: 0,
    collect: 0
}

则会被存储为

'## 666'+'\r\n'+'放暑假了'+'\r\n'+'真好'

这就导致我们在调用此属性时需要注意,是否使用原数据

express目录结构

bin

www ===>启动文件【入口文件】,端口储存在此文件中

app.js ===>全局配置文件

node_modules===>包文件

routers ===>路由的配置

index.js,下面操作会打开index.jade文件,并将title文件的内容植入到模板语法中,jade以及ejs文件后缀都是一种模板引擎文件
router.get('/', function (req, res, next) {
  res.render('index', { title: 'Express' });
});

public ===>静态资源【CSS,IMG,JS】

express路由

首先

function(req,res,next){
	//三个参数分别表示请求,响应,跳转
}

引入静态资源

<img src="/image/1.png">

直接使用/下文件夹和文件就行,不需要写为public/image/1.png

模板引擎

什么是模板引擎?

它用于解析动态数据和静态页面所生成的视图文件,将原本静态的数据变为动态,快速地实现页面交互; 目前使用较广的模板引擎有以下几种:Jade / Pug、EJS、Handlebars。

jade模板引擎

jade模板引擎相较于原来的html会显得更加简洁,它将标签原本的"<>"符号去掉,用括号代替,层级使用tab缩进来分,并且也支持js语法; 在express中会使用到模板引擎