Node.js】nodejs入门之Express基础,具体是什么呢?

2020-03-27 11:30发布

3条回答
答题小王子-super
2楼 · 2020-05-22 22:26

node是js的运行时,可以通过node编写后台服务器,但是原生弄得写起来会比较麻烦,就会使用框架:express;

基础主要有设置路由,添加中间件,和模板和静态资源目录等功能

ann
3楼 · 2020-11-09 10:06


express结构:MVC

开发版本:express4.0

安装方法:不再累赘,请点击这里

目录结构:






入门实例①:HelloWorld!



HelloWorld的实现较简单,只需要在app.js中插入一下代码:


//对网站首页的访问返回"HelloWorld!"字样

app.get('/',function(req,res){

res.send('HelloWorld!');

});然后运行

npmstart程序就能跑起来,这时候在网址输入 

localhost:3000 就先显示如下结果:



注:app.get('/',function(){ });需要放在代码前面,大概放在app.set('viewengine','ejs');即ejs模板引擎下就OK了



入门实例②:MVC的简单实现


一、控制器

首先我们在实例①中的代码下一行添加如下代码:


app.get('/test',test.me);


然后在该行代码上面用require引入test控制器,代码如下:


vartest=require('./routes/test');


注:require引入的路由文件必须在app.get方法之前。

以上完成后的参考图片如下:


然后就是在routes目录下建立对应的test.js控制器:


/*test测试例子*/

exports.me=function(req,res){

//首先输出个helloworld

res.send('HelloWorld!');

};接下来用

Ctrl+C终止程序并且

npmstart运行程序,在浏览器中输入xxx.xx.xx.xx:3000/test,出现效果如下:



到这里,我们简单的控制器就写完了,接来下写的是视图文件。


二、视图

在views目录下新建test.ejs,然后写入代码如下:


test小实例

<%=test%>

注:<%=xxx%>为ejs模板引擎的用法。


然后修改./routes目录下的test.js控制器代码,修改后的代码如下:


/*test测试例子*/

exports.me=function(req,res){

//res.send('HelloWorld!');

res.render('test',{test:'HelloWorldView!'});

};

注:这里使用了

res.render(); 方法给视图传递了

test参数


接下来用 Ctrl+C终止程序并且npmstart 运行程序,在浏览器中输入xxx.xx.xx.xx:3000/test,出现效果如下:


到这里,我们简单的视图就写完了,接来下写的是模型。

三、模型

前面控制器只用了模拟数据传进了实现,接下来我们用控制器从数据库中获取数据并传到视图。


首先在根目录下新建models目录,并在models下新建tests.js模型文件,然后再app.js文件中引入tests.js:


vartestModel=require('./models/tests');然后修改./models/tests.js文件,代码如下:



varmongoose=require("mongoose");

varSchema=mongoose.Schema;

//定义一个Schema

varorderSchema=newSchema({

date:Date

});

varOrders=mongoose.model('text',orderSchema);

mongoose.connect('mongodb://localhost:27017/myDatabase');



exports.findMess=function(callback){

Orders.find({},function(e,docs){

if(e)throwe;

exports.html="

查询到的数据为:"+JSON.stringify(docs);

});

callback();

};


/***

*插入时间

*/

exports.insert=function(date,callback){

vartest=newOrders({

date:date

});

test.save(function(e,product,numberAffected){

if(e)throwe;

callback();

});

}


注:数据connect连接需要在 

方法外,这样才能避免多次重复连接,其中

exports.html表该参数可对外使用,即可在控制器中引用。



然后修改视图 ./views/test.ejs代码如下:


test小实例

<%=test%>

<%=html%>

修改视图后,由于需要插入数据,所以在app.js下添加一个数据插入路由,代码如下:


app.get('/addTest',test.addTest);


完成上述工作后,修改./routes/test.js控制器,修改后的代码如下:


vartestModel=require('../models/tests');


/*test测试例子*/

exports.me=function(req,res){

testModel.findMess(function(){

res.render('test',{test:'HelloWorldView!',html:testModel.html});

});

};


/**

*添加数据

**/

exports.addTest=function(req,res){

testModel.insert(newDate(),function(){

res.redirect('/test/');//返回检索主页

});

};

注:其中testModel.html即是对模型中

exports.html的引用,redirect在控制器中控制重定向。



以上就是所有的代码,重新运行,效果图如下:







参考资料:   http://www.runoob.com/mongodb/mongodb-remove.html(菜鸟教程)

              http://qianduanblog.com/post/nodejs-learning-7-express-mongoose.html(前端博客)

              http://www.expressjs.com.cn/guide/routing.html(nodejs学习文档)







源码下载:https://yunpan.cn/c6HIDhDhNdvy7 访问密码286d




灰机带翅膀
4楼 · 2021-08-26 15:29

Express基础

Express它是一个NodeJS平台下面的框架,主要用于构于Web服务器项目,它是一个第三方的模块,我们可以直接通过包管理工具下载就可以了

1:学习node的第一个框架一般都是express  学习express之前只是要简单的安装一下express,2条命令即可安装成功


  第一:npm init -y   生成package.json文件  这个相当于是node包管理的配置文件


  第二:cnpm install express --save-dev    将express下载安装到本地

2:在根目录下面新建app.js 内容如下   基本包含了 引入expree包  初始化express  设置模板目录 设置模板引擎  构造路由  生成一个300端口的服务(端口可以自定义  在范围之内)  方便启动服务  启动服务就直接在cmd下  node  app.js

image.png

3,使用了express的路由功能   在当前目录下面新建一个router的文件夹  然后在该文件夹下面新建路由文件,我这里取名问index.js


   基本内容包含   引包  然后生成路由  设置回调函数    这里面有两个路由的回调函数有点不一样  res.send  ,,, res.render


   res.send是直接把内容输出到浏览器,res,render是先去加载ejs的模板引擎(ejs需要先下载  cnpm install --save-dev ejs).

image.png

3:在当前目录下新建views目录  在该目录下面新建index.ejs模板文件  注意后缀名必须是ejs的   因为app.js是这样设置的模板引擎

相关问题推荐

  • 回答 1

    nodejs是单线程异步的,但是你可以启动多个server,相当于多用户可以使用多线程,一般是CPU有几个核就开几个server。

  • 回答 3

    初次接触nodejs确实有一些难度,因为思路语法都和js有了一些差别,属于后端思想,所以需要楼主多下功夫,进行系统学习之后就容易接受了

  • 回答 2

    node.js实际上来说是后台语言,应用广泛,当然跟php java这样成熟的语言相比还是差一点,但是前景很好,而且因为是用的js的语法来写后台,对于前端来说很容易上手,假如是刚开始学习前端的话node.js不需要学习,先把前端的js H5 css3学好才是正事,不过如果有...

  • 回答 3

    什么是JavaScript?JavaScript 是一种语言,JavaScript的标准是 ECMAScript。什么是 ECMAScript?我们说的 ES5, ES6……就是指的 ECMAScript 不同标准。ECMAScript 只是一个标准,而JavaScript是对这个标准的实现。为啥不继续叫 JavaScript?因为 Oracle 拥有...

  • 回答 1

    根据百度百科上面的解释我们可以知道node.js是一个Javascript运行环境(runtime environment),实质是对Chrome V8引擎进行了封装;node.js不是一个 JavaScript 框架,也不是浏览器端的库,node.js是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScri...

  • 回答 5

    看你规模有多大了,Node.js 能够适应大规模项目开发没有问题。Nodejs是一种单线程、非阻塞的机制。有他自身的优势!

  • node.js是什么Node.js 2022-02-11 10:05
    回答 3

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型。Node 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。...

  • 回答 2

    Node.js更多是作为中间层的存在,不能替代纯后端,让服务器的压力更小,让前端的开发更简洁等...

  • 回答 1

    首先前后端在定接口的时候是要复提前约定的。一方提出我接制收的数据格式必须是 JSON,另一方必须按规则提交知。如果你想做容错的道话,可以根据 content type 判断(application/json)。...

  • 回答 4

    当然可以,国外的Uber 和LinkedIn,国内阿里系的不少产品都是用node开发的,node 的强项就是处理高并发。

  • 回答 10

    Node js之使用应用生成器来搭建第一个基于express的应用以前的开发中在构建一个express项目时,还是需要我们写很多的代码,还不够强大。我们可以借助应用生成器,帮我们把项目的基本骨架搭建好。一般提到开发,通常有如下几种:•   原生开发,所有的代码从...

  • 回答 7

    加载器的基本原理就是在html的head中插入script标签,通过这种方式加载远程js代码。其中。模块加载器通过依赖关系来保证代码的加在顺序以及执行顺序。因此开发人员在使用加载器时,不需要关注加载细节。...

  • 回答 11

    jsp本质就是一个Servlet.所有jsp页面都需要在服务器端运行。首先将jsp页面翻译成.java源文件,也就是servlet文件,再将servlet编译成.class文件,最后运行字节码文件。这是首次执行一个jsp页面必须经历的三个过程,如果是再次访问(在没有修改源代码的基础上...

  • 回答 8

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。(事件驱动:事件触发过程中,进行决策的一种策略,简单说就是跟随当前时间点上出现的事物,调用可用的资源进行解决该事物...

  • 回答 2

    node开发的时候都用框架,在处理post的请求的时候,大部分都是使用中间件来进行处理

没有解决我的问题,去提问