广告
返回顶部
首页 > 资讯 > 数据库 >自己构建mean framework
  • 262
分享到

自己构建mean framework

2024-04-02 19:04:59 262人浏览 安东尼
摘要

    由于项目的原因,项目的前端架构要从单纯的angularjs转到nodejs+angular+express的架构,这样的架构对大家来说可能比较眼熟,没错,就是大名鼎鼎的MEAN


    由于项目的原因,项目的前端架构要从单纯的angularjs转到nodejs+angular+express的架构,这样的架构对大家来说可能比较眼熟,没错,就是大名鼎鼎的MEAN (mongoDB,express,angularjs,node) framework。随着nodejs技术的日益成熟(当然io.js也逐渐崛起,并且和node重归于好),和其关联技术必将炙手可热,顺利成章地将全栈的概念更加普及。

    国内node社区很是活跃,比如说前端乱炖(Http://www.html-js.com/),nodejs中文社区(https://cnodejs.org/,GitHub上可以下载到源码),你当然也可以通过nodejs官方网站的企业登记页查询有哪些公司和项目在使用nodejs(https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node),包括我们熟知的公司有LinkedIn, Yahoo, Paypal, eBay, Walmart,Groupon 还有很多的中小型公司,国内的公司如雪球、淘宝、网易、百度等也都有很多项目运行在node.js之上,并且很多项目都在向node迁移。node包和npm是捆绑在一起的,从npm包的数量就可以看到node的火热程度,截止此刻已经达到150355,一个月的download量甚至能达到亿的数量级。

      回到项目中来,从纯的angularjs项目迁移到MEAN,我以为是个不怎么复杂的任务,无非就是加入node的支持,Express框架的引入和页面继续沿用以前项目的结果就完事儿了,现在看来,真是很傻很天真,一个个问题并且没有思路解决的时候就开始怀疑自己这么做的可行性。后来我考虑使用generator来生成MEAN工程(我使用的是meanjs,meanstack),由于网络原因也均作罢(根据错误信息提示可能是bower引起的,后面再研究下),还是自己捯饬吧。

    下面记录下我捯饬的过程, 仅供参考。

    第一部分,我们建立node环境。

    首先,在某个目录下建立一个package.JSON文件,键入如下内容:

 {
      "name": "starter-mean",
      "main": "server.js",
      "dependencies": {
        "express" : "~4.5.1",
        "monGoose" : "~3.8.0",
        "body-parser" : "~1.4.2",
        "method-override" : "~2.0.2"        
      }
}

Express为4.5.1及其以上版本(Node的一个mvc框架,当然还有其他的mvc框架,如express-io,koa,Geddy,Total,Partial,Locomotive,Sails),mongoose为3.8.0及其以上版本,body-parser 和method-override为Express的内置模块。

    接下来我们使用npm install 装下node modules,安装成功后,在package.json同级目录下生成一个node_modules目录,该目录下是项目依赖的目录,即在package.json的dependencies中定义的模块。

    这时候该工程还不能启动,因为还没有定义node的入口,就像java的main方法。接下来在package.json的同级目录下定义一个server.js文件,即package.jso中的main字段,键入如下内容:

var express        = require('express');
var app            = express();
var mongoose       = require('mongoose');
var bodyParser     = require('body-parser');
var methodOverride = require('method-override');
	
// config files
var db = require('./config/db');

var port = process.env.PORT || 8080; 
// get all data/stuff of the body (POST) parameters
// mongoose.connect(db.url); // connect to our mongoDB database 
app.use(bodyParser.json()); // parse application/json 
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
app.use(bodyParser.urlencoded({ extended: true })); // parse application/x-www-fORM-urlencoded

app.use(methodOverride('X-HTTP-Method-Override')); // override with the X-HTTP-Method-Override header in the request. simulate DELETE/PUT
app.use(express.static(__dirname + '/public')); // set the static files location /public/img will be /img for users

require('./app/routes')(app); // pass our application into our routes

app.listen(port);	
console.log('Magic happens on port ' + port); 			
exports = module.exports = app; 						

 如果想让你的工程链接mongodb,可以建立一个config目录,并建一个db.js,键入以下内容:

module.exports = {
	url : 'mongodb://<user>:<pass>@mongo.onmodulus.net:27017/uw45mypu'
}

我们在这里建一个数据模型,为支持操作mongodb,建立app/models/XXX.js, 可以键入如下内容,

// grab the mongoose module
var mongoose = require('mongoose');

// define our nerd model
// module.exports allows us to pass this to other files when it is called
module.exports = mongoose.model('demo', {
	name : {type : String, default: ''}
});

我不打算在demo中支持mongodb,只是示例而已。不过多解释。

我们还需要一个router,以便链接到我们的主页面,在app文件夹下建立一个router.js,键入:

module.exports = function(app) {

	// route to handle all angular requests
	app.get('*', function(req, res) {
		res.sendfile('./public/index.html');
	});

};

node的基本结构就是这样了,那么js文件,CSS文件,controller,server该怎么存放呢,Express要求建一个public文件夹用来存放这些文件。


为了保持同步,我们先看下现在的目录结构:

 自己构建mean framework


第二部分:建立WEB部分

我们先建立一个index.html

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>Starter MEAN Single Page Application</title>
</head>
<body>
      Mean framework!
</body>
</html>

下面我们启动下node服务,在server.js同级目录下启动命令行,执行

node server.js

在浏览器输入http://localhost:8080,如果看到“Mean framework ”,证明你的基本服务是ok的。


我们的demo还需要做如下几件事情:

 (1)css文件和js文件需要加载到页面

 (2)angularjs结构(controller,service,directive)

 (3)创建3个页面

 (4)使用ngRoute创建页面路由

 (5)使用bootstrap构建页面

 静态文件管理

 既然是新的架构,我们将采用新的管理文件工具bower。如果你还在用传统的手工方法搜索、下载js/css文件,那你就out的不行了。首先,确保你的机器已经安装bower,如果没有安装,可以通过如下命令安装:

npm install -g bower

之后,我们需要另外两个文件(.bowerrc和bower.json)文件才能让bower为我们工作,在工程根目录建立这两个文件,在 .bowerrc文件中键入文件目录,以后通过bower安装的文件都可以在这个目录下找到。

{
	"directory": "public/libs"
}


在bower.json中,输入中如下内容:

{
	"name": "angular",
	"version": "1.0.0",
	"dependencies": {
		"bootstrap": "latest",
		"angular": "latest",
		"angular-route": "latest"	
	}
}

dependencies字段中指明我们需要的第三方库,以后我们需要引入别的库,只需要在该文件中配置即可,然后执行:

bower insall

下载依赖库并把依赖库赋值到相应的目录下(注意:如果执行bower install报错时,错误的信息为无法链接到github.com,可以在执行该命令前执行

git config --global url."https://".insteadOf git://

将git://协议替换为https协议)。

是不是发现public/lib目录下多了些文件,现在你可以随意使用了。

我们最后看下新的文件结构:

自己构建mean framework

这里不在贴各个文件的代码,有需要的请查看附件,但是由于附件大小的限制,不再提供node_modules,请自行执行npm install && bower insall .

最后附上效果图:

自己构建mean framework

如果有问题请联系我。谢谢!

附件:http://down.51cto.com/data/2365706
您可能感兴趣的文档:

--结束END--

本文标题: 自己构建mean framework

本文链接: https://www.lsjlt.com/news/35077.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 自己构建mean framework
        由于项目的原因,项目的前端架构要从单纯的angularjs转到nodejs+angular+express的架构,这样的架构对大家来说可能比较眼熟,没错,就是大名鼎鼎的MEAN ...
    99+
    2022-10-18
  • 怎么构建自己的react hooks
    这篇文章主要介绍怎么构建自己的react hooks,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 常用的一个 hooks官方中提供了几个内置的钩子,我们简单了解下他们的用法。1.1 useState: 状态钩子...
    99+
    2023-06-15
  • Linux中怎么构建自己的Wiki
    这篇文章主要为大家展示了“Linux中怎么构建自己的Wiki”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux中怎么构建自己的Wiki”这篇文章吧。Wiki是一种在网络上开放且可供多人协同...
    99+
    2023-06-28
  • 详解如何构建自己的react hooks
    目录1. 常用的一个 hooks1.1 useState: 状态钩子1.2 useEffect: 副作用钩子1.3 useMemo 和 useCallback2. 实现几个自定义的 ...
    99+
    2022-11-12
  • 怎么构建一个自己的Laravel包
    这篇“怎么构建一个自己的Laravel包”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么构建一个自己的Laravel包”文...
    99+
    2023-07-04
  • 怎么构建自己的docker容器镜像
    本文小编为大家详细介绍“怎么构建自己的docker容器镜像”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么构建自己的docker容器镜像”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一. 设置docker构建...
    99+
    2023-07-05
  • 教你学会构建自己的迷你版ChatGPT
    构建自己的迷你版ChatGPT可以通过以下步骤实现:1. 数据收集:收集足够的对话数据作为模型的训练集。可以从公开的对话数据集中获取...
    99+
    2023-10-11
    ChatGPT
  • 使用python构建一个自己的聊天室
    目录一、简介二、网络编程基础概念三、Socket编程简介及原理四、聊天室架构及功能需求五、实现聊天室服务器端1.使用socket创建服务器端socket对象。2.绑定IP地址和端口。...
    99+
    2023-05-14
    python构建 python聊天室
  • 手动构建自己的docker容器镜像实战
    目录前言一. 设置docker构建镜像的环境1.1 commit 命令的介绍1.2 创建一个tomcat容器二. 开始构建自己的镜像2.1 查看容器的ID2.2 使用命令docker...
    99+
    2023-05-15
    docker容器镜像实战 docker容器镜像
  • 如何构建我们自己的轻量级框架
    今天就跟大家聊聊有关如何构建我们自己的轻量级框架,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先,我们对我们的页面结构进行一下简单的调整,加入bo...
    99+
    2022-10-19
  • 基于centos自己构建一个tomcat镜像的实现
    写个程序,要输出hello world才开心,同样,学习docker,自己构建镜像才算完事。 说正事: 先放linux用软件链接,自行下载 apache-tomcat-8.0.26j...
    99+
    2022-11-13
  • 如何为网站构建自己的Aleax查询服务
    这篇文章主要为大家展示了“如何为网站构建自己的Aleax查询服务”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何为网站构建自己的Aleax查询服务”这篇文章吧。1. Alexa介绍Alexa ...
    99+
    2023-06-16
  • 怎么使用python构建一个自己的聊天室
    今天小编给大家分享一下怎么使用python构建一个自己的聊天室的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、网络编程基础...
    99+
    2023-07-05
  • 怎么在云服务器上构建自己的网站
    在云服务器上构建自己的网站,你需要按照以下步骤进行操作:1. 选择云服务提供商:首先选择一个云服务提供商,确保选择一个可靠且适合你需...
    99+
    2023-09-28
    云服务器
  • Windows系统离线安装.NET Framework 3.5(自己做个总结)
    服务器不允许联网的情况下,安装SQLServer2012会出现需要Framework3.5的环境,但是某些系统上没有安装,又不能联网,需要我们自己去进行安装。自己做个总结 从网上找到sxs目录,是Framework的目录,也可以从对应版本的...
    99+
    2023-09-08
    数据库 java 服务器
  • python 创建自己的包
    创建步骤: 创建一个文件夹:mymath,在该文件夹下创建三个python 文件,分别为:__init__.py   getMax.py     getMin.py __init__.py:   这个文件必须以__init__命名,包管理...
    99+
    2023-01-31
    自己的 python
  • 自己建云服务器
    建立云服务器是一种使用云计算平台来管理和托管虚拟机的方式。以下是一些步骤可以帮助您创建自己的云服务器: 了解虚拟机 首先,您需要了解虚拟机(VM),它们是指运行在物理服务器上的特定操作系统和程序。了解VM需要了解一些重要的信息,如操作...
    99+
    2023-10-26
    服务器
  • gitlab自己注册和自己搭建有什么不同
    随着软件开发行业的发展,版本管理工具的重要性也越来越被人们所重视。在众多版本管理工具之中,Gitlab作为一款开源的版本管理工具备受欢迎。那么,对于使用Gitlab的用户来说,自己注册和自己搭建Gitlab有什么不同呢?自己注册Gitlab...
    99+
    2023-10-22
  • 如何用FileZilla Server构建属于自己的FTP伺服器
    如何用FileZilla Server构建属于自己的FTP伺服器,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。FileZilla是一种快速、可信赖的FTP客户端以及服务器端...
    99+
    2023-06-16
  • 自己建云服务器怎么建
    建立自己的云服务器可以有很多种方法,以下是一些常见的步骤: 配置服务器:在准备开始建立自己的云服务器之前,首先需要对网络进行设置,以使云服务器能够连接到互联网。在云服务器上,可以使用网络管理工具(例如 NetScape)来配置网络,以及...
    99+
    2023-10-26
    服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作