express + mongodb 搭建一个简易网站(一)

前言:后台使用node.js的express框架,数据库使用mongodb,模板使用ejs。大概就这些。

开始第一个简易网站之旅吧。。。。

1.在自己的电脑随意一个盘中建一个文件夹,名字怎么取看自己心情了,我自己的名字叫website。进入website文件夹,在根目录下新建一个package.json,添加如下代码,当然也可以在控制台中输入npm init来初始化package.json。代码贴出来了。

{
"name": "website",
"version": "1.0.0",
"description": "first website",
"main": "app.js",
"dependencies": {
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"Node.js",
"MongoDB"
],
"author": "candicy",
"license": "ISC"
}

2.万事开头难,第一步已经迈出去了,那就继续前行吧。在根目录下新建一个app.js的空js文件,作为项目的启动文件。然后在控制台安装express,输入npm install express。

好了,现在就开始在app.js中让我们的项目运行起来吧,在app.js中添加如下代码:

var express = require('express'); // 引入express框架
var port = process.env.PORT || 8000; // 设置端口号:3000 var app = express(); //实例化express app.listen(port); // 启动web服务。 console.log('server listening at ' + port);

在控制台输入node app按确定,然后控制台输出如下信息则代表我们的第一个服务已经启动成功了。就这样我们的简易网站已经在本地跑起来了。

3.到这里我们已经能启动一个web服务了,但是还没有什么东西,是不是觉得很小儿科啊,那就继续吧。

知识点补充:
express路由
路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。说的简单的就是我们输入url匹配到什么样的内容。

路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成,它的结构如下: app.METHOD(path, [callback...], callback), app 是 express 对象的一个实例, METHOD 是一个 HTTP 请求方法, path 是服务器上的路径, callback 是当路由匹配时要执行的函数。

下面是一个基本的路由示例:

var express = require('express');
var app = express(); // respond with "hello world" when a GET request is made to the homepage
app.get('/', function(req, res) {
res.send('hello world');
}); // respond with "hello world" when a GET request is made to the homepage
app.get('/admin', function(req, res) {
res.send('hello admin');
});

在express中,定义了如下和 HTTP 请求对应的路由方法: get, post, put, head, delete, options, trace, copy, lock, mkcol, move, purge, propfind, proppatch, unlock, report, mkactivity, checkout, merge, m-search, notify, subscribe, unsubscribe, patch, search, 和 connect。
但是我们常用的就是get,post。

以上是简单的路由知识点补充。详细了解express路由知识:http://www.expressjs.com.cn/guide/routing.html

下面我们来开启路由的大门吧。
在app.js中修改代码如下:

var express = require('express'); // 引入express框架
var port = process.env.PORT || 8000; // 设置端口号:3000 var app = express(); //实例化express app.listen(port); // 启动web服务。
//跟路由
app.get('/', function(req, res) {
res.send('这是首页。');
})
// admin路由
app.get('/admin', function(req, res) {
res.send('这是admin页。');
})
// detail路由
app.get('/detail', function(req, res) {
res.send('这是detail页。');
})
// about路由
app.get('/about', function(req, res) {
res.send('这是about页。');
}) console.log('server listening at ' + port);

运行node app然后在浏览器中输入
http://localhost:8000/
http://localhost:8000/admin
http://localhost:8000/detail
http://localhost:8000/about
出现下面对应的效果就ok了,第一篇的内容就这么多吧。当然我们的网站肯定不会这么简单,后面继续。

express + mongodb 搭建一个简易网站(一)的更多相关文章

  1. express + mongodb 搭建一个简易网站 (四)

    express + mongodb 搭建一个简易网站 (四) 目前网站整体页面都已经能全部展示了,但是,整个网站还有两个块需要做完才能算完整,一个连接数据库,目前网站上的数据都是抓取的本地假数据,所以 ...

  2. express + mongodb 搭建一个简易网站 (三)

    express + mongodb 搭建一个简易网站 (三) 前面已经实现了基本的网站功能,现在我们就开始开搞一个完整的网站,现在整个网站的UI就是下面的这个样子. 我们网站的样子就照着这个来吧. 1 ...

  3. express + mongodb 搭建一个简易网站(二)

    express + mongodb 搭建一个简易网站 (二) 在搭建网站(一)中,实现了简单的路由功能,这离一个完整的网站还差的有点远,继续撸代码吧. 1.首先在根目录下新建一个views文件夹,用来 ...

  4. express + mongodb 搭建一个简易网站 (五)

    前面已经将导航中的“所有宝贝”页面连上了mongodb,现在我们就把其他的页面脸上数据库,将整个网站全部实现. 打开routes文件,找到jacket.js,将里面的代码修改如下: var expre ...

  5. 从无到有,用Nodejs+express+mongodb搭建简易登陆系统

    前端处理server表示很蛋疼,初学Node,虽然感觉异常强大,但是学起来还是有些吃力的,Node是工具,它不是万能的,搭建一个系统还是需要借助其他一些工具,对于我这个没怎么接触server的前端来说 ...

  6. 使用EF Code First搭建一个简易ASP.NET MVC网站,允许数据库迁移

    本篇使用EF Code First搭建一个简易ASP.NET MVC 4网站,并允许数据库迁移. 创建一个ASP.NET MVC 4 网站. 在Models文件夹内创建Person类. public ...

  7. Angularjs,WebAPI 搭建一个简易权限管理系统

    Angularjs,WebAPI 搭建一个简易权限管理系统 Angularjs名词与概念(一)   1. 目录 前言 Angularjs名词与概念 权限系统原型 权限系统业务 数据库设计和实现 Web ...

  8. nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客

    GitHub: https://github.com/nswbmw/N-blog N-blog 使用 Express + MongoDB 搭建多人博客 开发环境 Node.js: 6.9.1 Mong ...

  9. 利用git+hugo+markdown 搭建一个静态网站

    利用git+hugo+markdown 搭建一个静态网站 一直想要有一个自己的文档管理系统: 可以很方便书写,而且相应的文档很容易被分享 很方便的存储.管理.历史记录 比较方面的浏览和查询 第一点用M ...

随机推荐

  1. caffe跑densenet的错误:Message type "caffe.PoolingParameter" has no field named "ceil_mode".【转自CSDN】

    最近看了densenet这篇论文,论文作者给了基于caffe的源码,自己在电脑上跑了下,但是出现了Message type “caffe.PoolingParameter” has no field ...

  2. 【Spring学习笔记-MVC-16】Spring MVC之重定向-解决中文乱码

    概述 spring MVC框架controller间跳转,需重定向,主要有如下三种: 不带参数跳转:形如:http://localhost:8080/SpringMVCTest/test/myRedi ...

  3. QSqlDatabase: QMYSQL driver not loaded

    转载:KiteRunner24 在Qt 5.9中使用数据库连接时,弹出下面的错误: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: avail ...

  4. bzoj3871: [Neerc2013 C]Cactus Automorphisms || 3899: 仙人掌树的同构

    Description 给定一个N,N<=50 000个节点的仙人掌,其是指每条边最多在一个环中的无向图,求仙人掌有多少种自同构.自同构是指得是图的顶点集合V到V的变换M, 以P1^a1*P2^ ...

  5. bzxoj1090 字符串折叠

    Description 折叠的定义如下: 1. 一个字符串可以看成它自身的折叠.记作S  S 2. X(S)是X(X>1)个S连接在一起的串的折叠.记作X(S)  SSSS…S(X个S). ...

  6. [UE4]头文件循环依赖C++

    有2个类:aaa和bbb. aaa.h已经#include了bbb.h,则bbb.h就不能#include aaa.h,但bbb.cpp可以#include aaa.h bbb.h已经#include ...

  7. C# 控制台程序(Console Application )启动后隐藏

    背景 前段时间给项目编写了数据适配器,读取其他系统的数据后推送到MQ上,我们的系统通过订阅MQ的方式来获取.由于其他系统支持C#编程,且为了一时方便,选择了C#的控制台程序. 最近用户在使用中,总是不 ...

  8. [datatable]借助DataTable的Compute方法

    借助DataTable的Compute方法,DataTable中数据不用事先排好序. 下面代码中的dt是跟前面的是一样的 DataTable dtName = dt.DefaultView.ToTab ...

  9. 关于sencha touch在华为、红米等部分手机下hide事件失效,msgbox无法关闭的解决方案(已更新最新解决方案)

    (急着解决问题的同学可以直接跳最底部查看最终的解决方案) 问题描述 因为前段时间抢到了华为荣耀3c,所以做项目的时候就用荣耀3c测试了一下项目, 结果发现在华为的emotion ui上sencha t ...

  10. Neuromation新研究:利用卷积神经网络进行儿童骨龄评估

    近日,Neuromation 团队在 Medium 上撰文介绍其最新研究成果:利用卷积神经网络(CNN)评估儿童骨龄,这一自动骨龄评估系统可以得到与放射科专家相似或更好的结果.该团队评估了手骨不同区域 ...