1.Node.js的去寻找引入的依赖时,如果是Node自带的模块,比如fs文件模块,只需要填写fs即可。如果是自己定义的模块,那么需要加入....引擎渲染( res.render() ) 1.Node.js使用ejs渲染的核心技巧是渲染数据的指定 2.尽量一个渲染数据对象包括所有的渲染内容 3.一个渲染对象可以有很多个属性,每次get请求时先发送一个空的对象到后端...避免了 传送过多的对象,代码看起来很复杂 4.渲染数据的位置在渲染的ejs文件中的放置, 如果需要样式,可以事先在HTML结构中包一层HTML结构, 然后用CSS定义好。...的渲染目录 ejs 的渲染数据在ejs文件中的格式有三种 1. 里面可以写任意代码 2. 里面写的代码最终会转义后再出现(推荐) 3. 里面写的代码最终不会转义后就出现(不安全) 'index.ejs ' <!
ejs嵌入其他页面时使用include,express2.x用法不一样。...您会看到此消息的可能原因是,您尝试在没有解决方案文件的情况下生成项目,并且为 oose\node_modules\mongoose\node_modules\mongodb\node_modules\bson...原理是在框架内每次赋值,把我们刚才手动传值的过程,让框架去完成了。 8. 页面提示 登陆的大体我们都已经讲完了,最后看一下登陆失败的情况。...我们避免这样的错误发生。 还记录路由部分里说的get,post,all的作用吗?我现在要回到路由配置中,再做点事情。...如果你也出现图片显示的内容,那么恭喜你了。 Nodejs使用Express3.0框架的第一步你已经完成了,并且还使用了ejs,bootstrap,mongoose库的使用。 希望此文对大家有所帮助。
路径为 /register),注册成功后就跳转登录界面(login.html 路径为 /login) 在登录界面登录成功后就跳转(home.html 路径为 /home)....在home这里还提供了注销的功能(无页面文件,它的路径为 /logout 如果浏览器直接输入localhost:3000/home 要先判断是否登录成功,未登录不允许进入 看到上诉,应该了解到:我们是通过一个路径...填入用户名密码,这里稍微设置了两次密码相同的判断,注册成功它会自动跳转登录界面 ? 用mongoVUE看看数据的创建 ? 那就登录吧,登录成功跳转home界面 ?...user.name 就是使用ejs模板通过session.user来获取user对象,这里user有name和password的属性 <!...Schema 然后处理获取 model ,最后就是返回一个model了(提供其他文件对model的操作 -- Entity是使用) var mongoose = require('mongoose')
作者:围的围 https://juejin.im/post/5dc81428e51d4523632ee793 前言 想必你一定使用过易企秀或百度H5等微场景生成工具制作过炫酷的h5页面,除了感叹其神奇之处有没有想过其实现方式呢...还有页面数据我们全部都有,我们可以做页面的预渲染,骨架屏,ssr,编译时优化等等。而且我们也可以对产出的活动页做数据分析~有很多想象的空间。...页面加载后执行。这里也可以考虑mixins方式混入到页面或者组件,可根据业务需求自行扩展,都是可以实现的。...,前端获取到数据后使用系统统一方法,遍历添加统一图片组件 psd源文件大小最好不要超过30M,过大会导致浏览器卡顿甚至卡死 尽可能合并图层,并栅格化所有图层 较复杂的图层样式,如滤镜、图层样式等无法读取...连接数据库 我们使用mongodb数据库,在koa2中使用mongoose这个库来管理整个数据库的操作。
我们在平时所用到的一些网站、App,它们会将我们的数据进行保存,当我们关闭这些网站或者 App 后,下次打开还能看到我们之前的一些文字、视频记录。...迷你全栈电商应用实战系列的全部教程如下: 1. 第一部分:用 Vue 搭建前端项目的骨架,实现基于嵌套、动态路由的多页面跳转。...我们的 API 服务器实际上就是通过 HTTP 的各种方法(POST、DELETE、PUT、GET 等)访问我们定义的路由,进而对数据库进行相应的增删改查操作以获取我们期望的数据。...接着我们在我们的 app.js 文件中导入 mongoose ,并且通过 mongoose 提供的接口连接我们的 MongoDB 数据库: // ... const mongoose = require...最后测试添加商品 product,POST /api/v1/products:这里我们在定义 product 的数据属性时,加入了 Manufacturer 作为外键,所以创建的时候对应的 manufacturer
每次点击导航栏选项跳转页面时,顶部导航栏以及底部信息展示区域是不变的,只是中间的内容区域重新渲染,因此,我们可以将通用的代码抽离成局部模板以复用。...处理文章创建时间的时候使用了 date() 函数,这是 Hexo 提供的时间处理的辅助函数。 由于首页显示文章内容时使用的是 post.content,即文章的全部内容。...所以首页会显示每一篇文章的内容,实际上我们并不想在首页显示那么多内容,只想显示文章的摘录。 Hexo 提供了 excerpt 属性来获取文章的摘录部分,不过这里需要在文章中添加一个 <!...简单来说,脚本文件可以相当于一些这样的的工具函数,当我们发现Hexo官方提供的函数不能满足我们的需求时,我们可以通过添加一个脚本来实现。...我们就可以在文章信息字段post或者page中获取到color。
最近业余时间利用hexo为自己搭建一个高度自定义的个人站点,站点发布在github上,访问地址为:https://cqhaibin.github.io/。本博客简单介绍实现此站点的过程。...2. hexo模板介绍 archive.ejs归档列表页模板,归档可以按照年份+月份实现的,list_archives显示列表 模板文件名 说明 layout.ejs 模板的入口文件,也是整个站点的入口文件...index.ejs 首页,布局文件默认输出嵌入的页面 post.ejs 文章详细页 page.ejs 页面 archive.ejs 归档列表页模板,归档可以按照年份+月份实现的,...list_archives显示列表 category.ejs 分类显示页 tag.ejs 标签页 hexo的模板解析,以layout.ejs为入口,所有静态页面(如:文章、页面、首页、标签、归档、分类等...hexo模板开发 根据上述 “hexo模板介绍”,我们可以很较为轻松的开发出自己的模板,模板文件说明 模板文件夹、配置文件 说明 layout 相关ejs模板信息,用于生成html时使用 script
导文 在Web开发中,开发者可能会遇到POST请求被发送了两次的情况,如下图: 尤其是在处理跨域请求时。...当前端应用试图从一个源(origin)上的Web页面访问另一个源上的资源时,浏览器会执行跨域请求,其中POST请求常常会伴随着两次发送:一次OPTIONS请求(CORS预检)和一次实际的POST请求。...跨域请求的预检 当Web页面中的脚本尝试访问与页面本身不同源(即协议、域名或端口中至少有一个不同)的资源时,浏览器会执行一种称为“同源策略”的安全限制。...在CORS中,当浏览器遇到某些类型的跨域请求(通常称为“复杂请求”)时,它会首先发送一个OPTIONS请求到目标服务器,询问是否允许该跨域请求。...服务器响应预检请求 服务器在接收到OPTIONS预检请求后,会根据其CORS配置来决定是否允许该跨域请求。
++i是前置自增运算符,它会先将变量i的值加1,然后返回加1后的值。也就是说,++i会先执行自增操作,再使用自增后的值。 i++是后置自增运算符,它会先返回变量i的当前值,然后再将i的值加1。...类的对象中包含一个虚函数指针,指向这个虚函数表。当我们通过基类的指针或引用调用虚函数时,实际上是通过这个虚函数指针找到虚函数表,然后在表中查找并调用相应的函数。...Token更适用于移动应用和单页面应用(SPA)。 17. get 和 post的区别? 根据 RFC 规范,GET 的语义是从服务器获取指定的资源,这个资源可以是静态的文本、页面、图片视频等。...发朋友圈的功能测试可以关注以下几个方面: 文本输入:测试输入各种字符、符号、表情、链接等,检查是否可以正常显示和发布。...图片/视频上传:测试上传各种格式、大小、分辨率的图片和视频,检查是否可以正常显示和发布。 定位功能:测试是否可以正确获取和显示位置信息。
在构造时,这些模板文件每次都会重新生成对应文件,例如文章页面,就是对应的模板文件将编译后的 markdown 格式的文本填入 HTML 页面,同时也会插入进去其他东西(比如题目,尾注等等)。...以EJS+LESS为例: EJS中包括全部的 html标签 和 JavaScript 脚本 Less是CSS的一种使用方式,这里可以理解为样式文件,但其样式参数可以用变量来表示,这样在开发主题的过程中就可以简化和统一整个样式所涉及的颜色高度等...基于 Hexo 参数的修改 这一部分可以在某些原有页面上添加,也可以是在新增页面上添加。...扩展思路:这里使用 Tags 进行比对,相似越多的文章就越相关,在最后一步,Category 相同会优先入选,排序后只取最相关的 TOP3,不足三个则有多少显示多少; 扩展结构: 1....: Hexo 每次发布都会重新生成博客的全部静态页面,如果资源也放在其中,那么也会每次都刷新一遍,如果是部署在云端或者用Pages服务进行托管的,这样每次的上传量将非常庞大,上传时间会非常长,且浪费时间的恰恰是基本不会修改的资源文件
它包含HTML代码和占位符,用于显示博客文章的标题,发布日期和作者。 此模板必须与页面布局模板组合才能创建最终的独立模板。...为此,我们用页面布局模板中的HTML代码替换页面布局模板中的{{content}}占位符以获取最终的独立模板。 这是通过在代码中进一步调用render()来完成的。...加载完所有布局模板后,它会调用render()以将帖子布局模板与页面布局模板组合起来,以形成最终的独立帖子模板。 同样,它将列表布局模板模板与页面布局模板组合在一起以形成最终列表模板。...然后它会两次调用make_pages()来呈现主页和其他几个网站页面:联系页面和关于页面。 然后,它再两次调用make_pages()来呈现两个博客:一个名为blog,另一个名为news。...然后,它会两次调用make_list()来呈现两个博客的博客列表页面。 这些调用与make_pages()调用非常相似。
运行界面如下: image.png 点击各链接都能正常跳转到对应的页面!这样第一步的目录就算达到了! 如何提取页面中的公共部分? 在上一步创建的网站中每个页面都几乎一样,现在都只有导航部分?...如果要做一个网站应用,不可避免的会遇到表单的提交及获取参数的值,下面我们来看看用node.js + express怎么做 先来构建一个表单简单模拟登录GET方式提交数据 1.打开subform.ejs...:http://localhost:8000/subform,输入表单项并提交,可以发现url不会发生变化 image.png 改为post方式后,会发现不会跟get方式提交一样在url中出现了表单中输入并要提交的值...当我们提交表单后,比如密码这些敏感信息,不做个加密处理那也太不把用户私密信息当回事了,Node.js提供了一个加密模块 Crypto http://nodejs.org/api/crypto.html...,一个登录,两个页都判断是否有这个session,如果有,显示已登录,没有则显示一个登录按钮,点此按钮,记录session 1.首先通过npm安装这个中间件,打开package.json文件,在dependencies
mongoimport –d 数据库名称 –c 集合名称 –file 要导入的数据文件 显示如下结果表示导入文件成功: ? 显示如下结果表示导入文件成功: ?...更新后 ? mongoose验证 在创建集合规则时,可以设置当前字段的验证规则,验证失败就则输入插入失败。...连接数据库,创建用户集合,向集合中插入文档 当用户访问/list时,将所有用户信息查询出来 实现路由功能 呈现用户列表页面 从数据库中查询用户信息 将用户信息展示在列表中...将用户信息和表格HTML进行拼接并将拼接结果响应回客户端 当用户访问/add时,呈现表单页面,并实现添加用户信息功能 当用户访问/modify时,呈现修改页面,并实现修改用户信息功能...修改用户信息分为两大步骤 1.增加页面路由 呈现页面 1.在点击修改按钮的时候 将用户ID传递到当前页面 2.从数据库中查询当前用户信息 将用户信息展示到页面中 2.
截止到2014年6月本文发稿时,已经有79693包在npm.org上面发布,而且这个数字还在快速增长中。 那么接下来,大家肯定都会问为什么要是用Nodejs呢? 1.2. 为什么要用Nodejs?...2.1 Web开发:Express + EJS + Mongoose/MySQL express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站。...发布时,Hexo可以部署在自己的Node服务器上面,也可以部署github上面。...在浏览器中,调用browserify编译后的代码,同样写在标签中。 用 Browserify 的操作,分为3个步骤。1. 写node程序或者模块, 2....在HTML页面中加载bundle.js。 ? 2.12 命令行编程工具:Commander commander 是一个轻巧的nodejs模块,提供了用户命令行输入和参数解析强大功能。
; 2007年10月发布3.1版本后不久,ECMAScript 3.1改名为 ECMAScript 5。...对于已经装过的,重新安装就会升级 安装成功后,打开命令行,输入 node –version 或者 node -v (显示node的版本号) ?...模仿Apache服务器,遍历文件及文件,显示时间及大小; 右键另存为,下载页面当作静态页面模板使用; 使用node载入静态页面: ? ?...管理包时,package.json 及package-lock.json 的内容都会自动更新 3.6 服务端页面渲染 之前的案例中,我们时通过前端浏览器发送ajax请求获取服务器数据的,前端获取数据后进行遍历展示...(luyou.js) 中添加以下两个路由,get 展示静态登陆页面,post 获取用户提交的数据并写入 session ,写入成功后,跳转到首页;在业务模块(yewu.js)中添加响应的方法 .get(
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.所以redirect等于客户端向服务器端发出两次request,同时也接受两次response...在服务器端,用Request.QueryString来获取Get方式提交来的数据 Post请求则作为http消息的实际内容发送给web服务器,数据放置在HTML Header内提交,Post没有限制提交的数据...Post比Get安全,当数据是中文或者不敏感的数据,则用get,因为使用get,参数会显示在地址,对于敏感数据和不是中文字符的数据,则用post。 ...6,POST表示可能修改变服务器上的资源的请求,在服务器端,用Post方式提交的数据只能用Request.Form来获取。 8、什么是cookie?Session和cookie有什么区别?...当我们使用事务时,有可能会出现这样的情况,有一行数据刚更新,与此同时另一个查询读到了这个刚更新的值。
获取请求的参数 5. 利用 Express 托管静态文件 6. 在 Express 中使用模板引擎 7....这个小案例,我们浏览器访问相应的路径时,就会得到相应的显示: 而且,当我们访问一个我们没有定义的请求路径的时候,它会在页面上面显示出相应的错误。...) }) 当我前端传来参数时,如http://localhost:3000?...当然,不仅仅是app.post()这种应用级中间件哈,router.get() 、router.post()等中间件也能这样获取。...如果我要创建一个基于ejs模板引擎的底座,可以在运行express命令时指定一些参数来创建。
这种能力使得MongoDB在处理大规模数据和高负载时表现出色。 高性能: MongoDB采用了索引、聚合框架和内置分片等技术,以提供高性能的数据查询和检索。...这使得Node.js在处理I/O密集型任务时表现出色,能够实现更高的吞吐量和更低的响应时间。...> { console.log('记录:', record); // 在这里进行您的处理逻辑,例如显示在界面上 });...} else { console.log('未找到匹配的记录'); // 在界面上显示相应的消息,告知用户未找到匹配的记录 } },...生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { },
基于类的用户登录实现 在前面我们实现用户登录是基于视图函数来实现的,也就是下面这段代码: # 当我们配置的url被这个view处理时,将会自动传入request对象. def user_login(request...# 获取登录页面时为get elif request.method == "GET": # render的作用是渲染html并返回给用户 # render三要素:...必须和html中的保持一致,因为它是我们从request.POST中得到的(request.POST也是从前端页面获取到的)。...假如用户向服务器发起两次请求,那么这两次请求是没有状态的,服务器不知道这两次请求都是同一个用户发起的。...session的安全护航 用户在向服务器发起第一次请求后,服务器会给用户随机地分派一个id(可以是用户的user id,也可以一段任意的字符串),我们把它叫做session id。
领取专属 10元无门槛券
手把手带您无忧上云