这是我参与「第四届青训营 」笔记创作活动的第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中会使用到模板引擎