nodejs项目怎么运行可以做什么样的项目

我问个问题,难道使用nodejs做项目的,都是前台后台都用node吗? - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
难道就没有后端是别的系统,nodejs只是用前端相关功能(比如模板引擎、路由)之类的?
比如说我公司后端跑的是java,这个是必须稳定的,领导不让改动,那么想把前端相关的东西挪到nodejs,比如采用一些模板引擎之类的。
难道这样做有什么不妥吗?是不是用node,就必须把后端一起用了,非得跑个mongodb才行?
当然非必需了
针对你说的作为模板引擎, 可以作为中间件使用,即 http -& nodejs service -& java service
有比较详细的教程么
没用过,不知道具体是怎么玩的
后端的java是输出json吗? 如果不是json接口,输出模板页面的话,数据怎么传给nodejs呢,难道让nodejs都抓页面吗?
node只负责前段模板渲染、路由定义,以及请求java的接口
前提是JAVA端有提供API。
然后要考虑你的受众:
1: 面向前台(企业展示,论坛等)需要考虑SEO的,用 node.js 作中间层很合理。
2: 面面后台(只供内部管理)不需要考虑SEO的,还不如直接做成SPA!当然前提是 api 是无状态的,http的,若是 RESTful的更好。
确实忘了说,JAVA侧就是纯粹提供API的,提供REST接口,不生成页面
我请问,如果我用SPA做后台管理,那么用angularjs的话,我把前台代码部署在什么地方?
可以不和JAVA部署在一个机器上吗?有什么WEB服务器部署,如果不和后台在一个IP,那么跨域能解决吗?
整个架构的关键在于java 处理的业务数据怎么传给前端?之前做过一个证券项目业务处理有java,C,cobol,shell及一些脚步语言,就是楼上说的通过中间件的形式传送上下电文,把后端处理的数据封装成请求和响应电文放入中间件消息队列中,前端通过JavaScript 读取显示到画面上,如果有想法,我们可以一起去搭建下这个框架,实验下
当然可以,如果存在一定要跨域的情况,就要看你的 java api 能不能加上允许跨域的 header。
不过,我个人倾向于避免跨域,你可以设立一个 nginx 负责输出 spa 的静态内容,然后把 /api 请求 proxy pass 到 java api 上面,这样就不存在跨域的问题了。
多谢楼上,十分感谢!
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的(stella0721)
(产品_张桂)
(八戒程序猿)
第三方登录:您的位置:
NodeJS无所不能:细数十个令人惊讶的NodeJS开源项目
日 19:13:20 | 作者:佚名 | 来源:CSDN
摘要:NodeJS逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用NodeJS进行开发,此外,开发人员还可以使用它来开发一些快速移动Web框架。
在几年的时间里,逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用Node.JS进行开发,像PayPal,此外,开发人员还可以使用它来开发一些快速移动。
除了Web应用外,NodeJS也被应用在许多方面,本文盘点了NodeJS在其它方面所开发的十大令人神奇的项目,这些项目涉及到应用程序监控、媒体流、远程控制、桌面和移动应用等等。
NodeOS是采用NodeJS开发的一款友好的操作系统,该操作系统是完全建立在Linux内核之上的,并且采用shell和NPM进行包管理,采用NodeJS不仅可以很好地进行包管理,还可以很好的管理脚本、接口等。目前,Docker和Vagrant都是采用NodeOS的首个版本进行构建的。
许多硬件黑客希望通过Web页面即可控制他们的Arduino,Noduino就是这样的一个项目,一个简单灵活的JavaScript和NodeJS框架,通过使用HTML5、Socket.IO和NodeJS的Web应用来控制Arduino。目前,该项目刚刚启动,支持一些常用功能,比如从Arduino中捕获事件(例如点击按钮)等。
3.Node-WebKit
Node-Webkit是一个基于Chromium与NodeJS的应用程序运行器,允许开发者使用Web技术编写桌面应用。它是NodeJS与WebKit技术的融合,提供一个跨Windows、Linux平台的客户端应用开发的底层框架。
跨平台开发并非易事,其中一种方式便是使用Web技术和Node-Webkit开发桌面应用来代替那些庞大且笨重的开发框架。
PDFKit是采用NodeJS开发的一款PDF文档生成库,它使用一个“HTML5 canvas-like API”来创建矢量图形和字体嵌入,并且支持许多标准的PDF功能,如文件的安全性、表的创建、文本换行、项目符号、高亮提示、注释等PDF功能。
注意,PDFKit是一款PDF生成工具,而不是一个文档转换系统。如果你想对现有的PDF文档进行操作,你可以使用另一个NodeJS项目―― Scissors。
Log.io是一个基于NodeJS开发的实时日志监控项目,在浏览器里访问。需要注意的是,Log.io只监视日志变动并不存储日志,不过这个没关系,只要知道日志存储在哪个机器上。
Log.io使用 Socket.io库发送活动报告的,和其他的监控工具一样,Log.io也采用服务器-客户端的模式。Log.io由两部分组成:server和harveste,server运行在机器 A(服务器)上监视和纪录其他机器发来的日志消息;log harvester 运行在机器 B(客户端)上用来监听和收集机器 B上的日志改动,并将改动发送给机器 A,每个需要纪录日志的机器都需要一个harvester。
[责任编辑:软件频道 ]
正在加载...
我也说几句
汇编一周来国内外网络和IT行业发生的焦点新闻,精挑细选,第一时间推送独家采写的深度报道和热点专题,深入挖掘新闻事件背后的故事,剖析新闻事件的来龙去脉,让读者准确把握业界的发展态势。
汇集存储频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的购买指南,专家博客,皆汇聚在此。
定期为您带来深入权威的网络,交换机,路由器,无线,通信领域信息服务,涵盖产品,技术,新闻,应用案例,评测,购买指南,专栏,技巧等多个方面的信息。与企业网络相关的一切,尽在网络通信邮件,您怎可错过?
新一代数据中心建设管理最新信息快递――聚焦新一代绿色数据中心的设计、建设、运营和管理,汇集业界专家与用户的最精粹观点,展示国内外数据中心经典案例!
定期为您带来安全领域权威专业的产品,技术,新闻,应用案例,评测,购买指南等信息,保护您在网络畅游之时不受病毒的威胁,企业运行之际减少安全的风险。一份邮件在手,一份安全在心!
深入、专业关注云计算相关的技术与实践,范围覆盖私有云建设、公有云服务运营、开源云平台发展、重要云服务商动态等领域,面向企业CIO和IT经理提供深度原创报道,以及云计算、云服务领域最新的市场资讯。
汇集软件频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的企业软件新闻,SOA,SaaS,BI,ERP,开源技术,产品,技巧等全方面的实用资讯。还犹豫什么,这就开始体验一下吧!
深入、专业关注大数据相关的技术与实践,提供Hadoop、NoSQL等领域的最新技术资讯,定期发布由业界专家撰写的大数据专栏文章,面向企业CIO、IT经理、DBA提供深度原创报道,以及大数据领域的最新市场资讯。
汇集服务器频道每周精华内容,让您在最短的时间内,以最便捷的方式获取权威的服务器虚拟化,刀片服务器,操作系统,大型机,服务器芯片信息,最新最全的服务器技巧,购买指南,专家博客,皆汇聚在此。
网界网网络学院频道,内容涵盖移动互联,技术开发,Web前端,安全,网络通信,云计算,数据中心,存储,服务器,软件等内容。
订阅过的用户,全部取消选择,可取消订阅
网络世界移动客户端网界网微信订阅号nodejs+mongodb做项目的详解
1.准备工作
Nodejs、express和mongodb的安装(这里安装的都是最新版的)
### 安装: ###
Nodejs的安装没什么说的。不过安装完之后测试是否成功用过原来版本的同学可能会有一些问题。
原来的版本是:$ node -v 新版不在支持$,直接在命令行中:node -v
安装最新版的express之后,需要在安装:express-generator //express命令工具,很多初学者都会遇到这个问题(当然我也是)
mongodb的安装下面会讲解到。
&用express创建一个项目的框架。&
这个我创建一个名字叫chihou的网站,用的模板引擎是ejs。
&express -e chihuo
-e表示ejs模板引擎,不写 -e 默认的创建jade模板引擎
然后在输入:
cd chihuo //进入到你创建的项目目录
npm install //读取根目录中的package.json文件然后安装项目所依赖的包
然后通过cmd命令行 cd 到 chihuo 的目录下&
这样就启动项目了。
提示1:如果不能启动项目:看看app.js文件中没有监听端口。如果没有,
在 module.exports = 语句之前添加app.listen(3000);
提示2:Ctrl + c 终止运行
然后我们可以在地址栏里敲入 https://127.0.0.1:3000/ 或者 https://localhost:3000&
这就是你的第一个express创建的node app。
到这里你就完成了项目的重要的一步。
之后的讲解 我们从目录开始
--node_modules 项目中依赖的包
--public 公共资源放的目录
--routes 学名 路由,里面放着一些路由文件
放着就是页面文件了
项目的入口文件。当然你也可以改成其他的名字。
2.现在基本的结果已经有了,之后就是创建了
mongodb的安装
这里只介绍window的安装
在官网上下载zip,这个我装在D盘的mongodb目录下
1.在D盘中创建mongodb文件夹然后把下载的包解压后把其中的bin文件夹拷贝到创建的mongodb文件夹中,
2.然后在mongodb文件夹中创建一个data文件夹,再在data文件夹中创建db文件夹
3.打开CMD命令行
&cd mongodb\bin
&mongod -dbpath D:\mongodb\data\db
4.在打开一个CMD命令行:
&cd mongodb\bin
5.这样就可以用了。
接着就设计我们的数据库了
在刚才的打开的mongodb数据库中输入:
&use chihuo \\创建一个叫chihuo的数据库
&db.createCollection(&users&) \\创建一个集合
&db.users.insert({&name&:&admin&,&password&:&111&}) \\给users集合添加一个文档。
&db.users.find() \\查询你添加的文档
再接着就是在项目中连接刚才创建的数据库了
在项目根目录下创建一个的文件夹database,然后在创建一个
1 var mongoose = require('mongoose');
2 var db = mongoose.createConnection('mongodb://localhost/chihuo');//;连接数据库
3 var Schema = mongoose.S // 创建模型
4 var userScheMa = new Schema({
5 name: String,
6 password: String
7 }); // 定义了一个新的模型,但是此模式还未和users集合有关联
8 exports.user = mongoose.model('users', userScheMa); // 与users集合关联
3.接着在views文件夹创建视图文件了
我们上面用express创建的项目视图文件是ejs后缀名,我们一般习惯使用html后缀名。
那么我们怎么让他识别html的视图文件呢?
在app.js文件中 找到
&app.set('view engine', 'ejs');
把它替换成:
&app.set( 'view engine', 'html' );
再用app.engine()方法注册模板引擎的后缀名。代码:
&app.engine('.html',require('ejs').__express);//里面的下划线是两个
然后我们创建一个login.html(登陆页面),index.html(原来有,改一下后缀名就行),ucenter(登陆之后的页面);
&1 login.html
&2 &!DOCTYPE html&
&5 & &title&&%= title %&&/title&
&6 & &link rel='stylesheet' href='/stylesheets/style.css' /&
&7 &/head&
&9 & &h1&Hello World&/h1&
10 & &p&Welcome to &%= title %&&/p&
11 & &form action=&ucenter& method=&post&&
12 & & &p&
13 & & & &span&name:&/span&
14 & & & &br&
15 & & & &input id=&name& name=&name& type=&text&&
16 & & &/p&
17 & & &p&
18 & & & &span&password:&/span&
19 & & & &br&
20 & & & &input id=&password& name=&password& type=&password&&
21 & & &/p&
22 & & &p&&input type=&submit& value=&submit&&&/p&
23 & &/form&
24 &/body&
25 &/html&
&1 index.html
&2 &!DOCTYPE html&
&5 & &title&&%= title %&&/title&
&6 & &link rel='stylesheet' href='/stylesheets/style.css' /&
&7 &/head&
&9 & &h1&Hello World&/h1&
10 & &p&Welcome to &%= title %&&/p&
11 & &p&&a href=&login&&登陆&/a&&/p&
12 &/body&
13 &/html&
ucenter.html
&!DOCTYPE html&
& &title&&%= title %&&/title&
& &link rel='stylesheet' href='/stylesheets/style.css' /&
& &h1&Hello World&/h1&
& &p&Welcome to &%= title %&&/p&
& &p&你已经登陆&/p&
&4.最后就是路由的控制了,在routes文件中的index.js&
&1 var express = require('express');
&2 var router = express.Router();
&3 var user = require('../database/db').
&6 /* GET home page. */
&7 router.get('/', function(req, res) {
&8   res.render('index', { title: 'index' });
11 /*login*/
12 router.get('/login', function(req, res) {
13   res.render('login', { title: 'login' });
16 /*ucenter*/
17 router.post('/ucenter', function(req, res) {
18   var query = {name: req.body.name, password: req.body.password};
19   (function(){
20     user.count(query, function(err, doc){
21       if(doc == 1){
22         console.log(query.name + &: 登陆成功 & + new Date());
23         res.render('ucenter', { user:doc });
24       }else{
25         console.log(query.name + &: 登陆失败 & + new Date());
26         res.redirect('/');
27       }
28     });
29   })(query);
32 module.exports =

我要回帖

更多关于 阿里云部署nodejs项目 的文章

 

随机推荐