nodejs怎么在页面跳转的时候,浏览器打开页面不跳转地址不跳转

express中res.redirect 跳转的问题 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
我写的两个文件一个是index.js,另一个是hello.html,,我想要测试一下express,通过res.redirect来跳转到hello.html。
index.js内容如下:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
//res.redirect('hello');
res.redirect('./hello');
app.get('hello',function(req,res){
res.end('asdf');
app.listen(3000);
console.log(&http://localhost:3000&);
可是运行后总是报错说,,cannot get ./hello
是我哪个语法写错了么。还是什么写错了呢
不是表示从根目录读取么,,./hello
各种路径都试过了,报的错误都是cannot get 加 路径,我也尝试过把hello.html文件放在各种路径下,结果都不行
是不是环境什么的错了啊,我也用sudo apt-get install express 安装了express,,
或者我的用法错了?
hello.html应该在views文件夹下存放。
app.get(’/hello’, next…);
用res.sendfile
redirect 会给浏览器返回一个 302 状态码,对应的,返回的内容应该是路径。
哦哦,,我没有用express命令搭建什么框架,,我就只写了index.js和hello.html两个文件,把它们放在同一个文件夹下。是我文件的位置没有放对么,还是我不可以直接这么用呢?
不好意思,前两天回家过年玩的太开心了…我刚才试了,下面的代码可以通过,而且不需要Hello.html就可以,只是传给浏览器请求。
var express = require('express');
var app = express();
app.get('/', function (req, res) {
//res.redirect('hello');
res.redirect('/hello');
app.get('/hello',function(req,res){
res.end('asdf');
app.listen(3000);
console.log(&http://localhost:3000&);
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的实现页面的跳转后,浏览器的地址栏不变
使用js脚本:
&script language=javascript&
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
XMLHttpR = new XMLHttpRequest();
}else if(window.ActiveXObject){
XMLHttpR = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
XMLHttpR = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
function sendRequest(url){
createXMLHttpRequest();
XMLHttpR.open("GET",url,true);
XMLHttpR.setRequestHeader("Content-Type","text/charset=gb2312");
XMLHttpR.onreadystatechange = processR
XMLHttpR.send(null);
function processResponse(){
if(XMLHttpR.readyState ==4 &&
XMLHttpR.status == 200){
document.write(XMLHttpR.responseText);
sendRequest("");
使用iframe框架:
&iframe id="frame3d" name="frame3d"
frameborder="0" width="100%" scrolling="auto"
&style="margin-top: -4"
onload="this.style.height=document.body.clientHeight-84"
&height="100%" src="" mce_src="
缺点是,存在跨域访问的问题。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。一、&a&标签
&a href=&test.aspx&&&/a&
这是最常见的一种转向方法
二、HyperLink控件
& 1. Asp.net 服务器端控件 属性NavigateUrl指定要跳转到的Url地址
& 2. NavigateUrl是可以在服务器端使用代码修改,这个区别于&a&
& 3. 由于HyperLink本身没有事件所以要在服务器端其它事件中设置NavigateUrl
& 4.&代码示例:
&Asp:HyperLink id=&hyperlink& runat=&server& NavigatoeUrl=&test.aspx&&ok&/Asp:HyperLink&
三、Response.Redirect()方法
&1.&过程:发送一个Http响应到客户端,通知客户端跳转到一个新的页面,然后客户端再发送跳转请求到服务器端。
& 2.&页面跳转之后内部控件保存的所有信息丢失,当A跳转到B,B页面将不能访问A页面提交的数据信息。
& 3.&使用这个方法使用这个方法跳转后浏览器地址栏的Url信息改变
& 4.&可以使用Session Cookies Application等对象进行页面间的数据传递
& 5.&重定向操作发生在客户端,总共涉及到两次与Web服务器的通信:一次是对原始页面的请求,另一次是重定向新页面的
Response.Redirect("Default.aspx");
四、Server.Transfer()方法
& 1.&实现页面跳转的同时将页面的控制权进行移交
& 2.&页面跳转过程中Request Session等保存的信息不变,跳转之后可以使用上一个页面提交的数据
& 3. 跳转之后浏览器地址栏的Url不变
& 4.&这种方法的重定向请求是在服务器端的进行的,浏览器不知道页面已经发生了一次跳转
Server.Transfer("Default.aspx");
五、Server.Execute()方法
1.&该方法允许当前页面执行同一个Web服务器上的另一个页面
& 2.&页面执行完毕之后重新回到原始页面发出Server.Execute()的位置。
& 3.&这种方式类似针对页面的一次函数调用 被请求的页面可以使用原始页面的表单数据和查询字符串集合
& 4.&被调用页面的Page指令的EnableViewStateMac属性设置为False
string str = "&script language=javascript&history.go(-2);&/script&";
Response.Write(str);&
& 1.&为了确保HTML输出的合法性 最好使用Response.Redirect方法;因为Server.Execute 或者Server.Transfer方法返回给客户端的页面包含多个&Html&&body&标记,不是合法的HTML页面,在 非IE浏览器中可能会发生错误。
& 2.&由于Server.Transfer在服务器端执行重定向,所以避免了不必要的网络通信,从而获得了更好的性能和浏览效果。
打开新界面:
Response.Write(" &script& window.open( 'Default.aspx '); &/script& ");
各种js页面跳转代码
Javascript代码
&script language="javascript" type="text/javascript"&
window.location.href="login.jsp?backurl="+window.location.
&script language="javascript" type="text/javascript"& window.location.href="login.jsp?backurl="+window.location. &/script&
第二种:&&&&
Javascript代码
&script language="javascript"&
alert("返回");
window.history.back(-1);
&script language="javascript"& alert("返回"); window.history.back(-1);
第三种:&&&
Javascript代码
&script language="javascript"&
window.navigate("top.jsp");
&script language="javascript"& window.navigate("top.jsp");
例子:::后台:
Response.Write(" &script language=javascript& window.navigate('Default.aspx'); &/script& ");
第四种:&&&
&script language="JavaScript"&
self.location=&top.htm&;
第五种:&&&
Javascript代码
&script language="javascript"&
alert("非法访问!");
top.location=&xx.jsp&;
&script language="javascript"&
alert("非法访问!");
top.location=&xx.jsp&;
=====javascript中弹出选择框跳转到其他页面=====
Javascript代码
&script language="javascript"&
function logout()...{
if (confirm("你确定要注销身份吗?是-选择确定,否-选择取消"))...{
window.location.href="logout.asp?act=logout"
&script language="javascript"& &!-- function logout()...{ if (confirm("你确定要注销身份吗?是-选择确定,否-选择取消"))...{ window.location.href="logout.asp?act=logout" } } --& &/script&
=====javascript中弹出提示框跳转到其他页面=====
Javascript代码
&script language="javascript"&
function logout()...{
alert("你确定要注销身份吗?");
window.location.href="logout.asp?act=logout"
&script language="javascript"& &!-- function logout()...{ alert("你确定要注销身份吗?"); window.location.href="logout.asp?act=logout" } --& &/script&
&input type="button" value="返回" onClick="javascript: history.go(-1)"&
&a href="javascript:history.go(+1)"&Go Foward&/a&
刷新(当前页加载url页面):
Javascript代码
window.location.href=url
刷新(顶级框架加载url页面):
Javascript代码
top.location.href=url
"javaScript:window.parent.frames.manframe.location.reload()"
近期在学习高手的一个项目,页面跳转用了好多方法,搞得我焦头烂额,在高手的指点下,终于搞明白了:
页面跳转一般分为两大类:服务器端跳转和客户端跳转,其一般的形式为:
如果你要在服务器端跳转,可以这样:
&&Response.Redirect("WebForm1.aspx");
&&Response.End();
如果你要在客户端跳转,可以这样:
&script&language="javascript"&type="text/javascript"&
window.location.href="WebForm1.aspx";;
如果你要让页面显示几秒钟之后跳转,可以在html代码的&head&&/head&部分加上这样的代码:
&meta&http-equiv="refresh"&content="3";&url="WebForm1.aspx"&
(3秒钟后自动跳转到WebForm1.aspx页面)
以上是实现页面跳转的基本方法,现在来看一个例子:我们定义一个页面,页面Html如下:
&&&&&form&id="form1"&runat="server"&
&&&&&&&&&asp:Button&ID="Button1"&runat="server"&Text="JS跳转"&OnClick="Button1_Click"&/&
&&&&&&&&&asp:Button&ID="Button2"&runat="server"&Text="CS跳转"&OnClick="Button2_Click"&/&
&&&&&/div&
&&&&&/form&
在页面中我定义了两个跳转按钮,其后台代码如下:
&protected&void&Button1_Click(object&sender,&EventArgs&e)
&&&&&&&&&&&&Js_ShowMessage("我要跳转了");
&&&&&&&&&&&&Js_Redirect("WebForm1.aspx");
&&&&&&&&protected&void&Button2_Click(object&sender,&EventArgs&e)
&&&&&&&&&&&&Js_ShowMessage("我要跳转了");
&&&&&&&&&&&&Response.Redirect("WebForm1.aspx");
&&&&&&&&private&void&Js_ShowMessage(&string&message)
&&&&&&&&&&&&Response.Write("&script&language=javascript&alert(\""&+&message.Replace("\r\n",&"\\n")&+&"\")&/script&");
&&&&&&&&private&void&Js_Redirect(string&url)
&&&&&&&&&&&&Response.Write("&script&language=javascript&window.location.href='"&+&url&+&"'&/script&");
这两种跳转会有什么差别呢?通过执行代码,当触发Button1的click事件时,页面是先显示了一段信息(&我要跳转了&)后,跳转到别的页面,而触
发Button2的click事件的时候,页面直接跳转,并没有显示我们所要求的信息。这是为什么呢?我们明明是要求在显示一段信息后,在跳转的阿。
原来,用Response.Redirect实现页面跳转的时候,客户段仅仅是读取了服务器端发送页面的头部,便执行了跳转,并没有执行页面中的JS代
码,因此没有显示我们所要求显示的信息。二用JS跳转,客户段执行了服务器端发送的页面的js代码,因此是先显示了一段代码后,再实现的跳转。
&&& 由此我们可以看出,用Response.Redirect实现页面跳转,比用JS要节省资源。因此我们在后台执行一段代码后要求页面跳转的时候,尽量用Response.Redirect实现页面跳转。
&&& 但是,有这么一种情况:我要删除某一项信息,删除完毕后,我要求先提示一段信息,告诉我信息删除完毕,然后在跳转到别的页面。这时,用Response.Redirect显然是不能实现的,只能用JS实现页面的跳转。
&&& 总结:在后台执行一段代码后要求页面跳转的时候,用Response.Redirect实现页面跳转。
&&&&&&&&&&& 在后台执行一段代码,并显示一条提示信息后要求页面跳转的时候,用Response.Redirect实现页面跳转。这里在讨论下button控件的onClientClick事件:如下代码:
&&asp:Button&ID="Button2"&runat="server"&Text="CS跳转"&OnClick="Button2_Click"&OnClientClick="alert('我要跳转了');return&"&/&
&&asp:Button&ID="Button2"&runat="server"&Text="CS跳转"&OnClick="Button2_Click"&OnClientClick="alert('我要跳转了');return&"&/&
在onClientClick()事件中,return false 和return true 有什么区别呢?通过执行代码,可以知道:
&当return false时,并不执行页面的后台代码。
&当return true 时,是要执行页面的后台代码的。
这和js中的Confirm对话框是一样的。
这样,我们要求先显示一段信息,再执行一段后台代码,在实现页面跳转的时候,可以在Button加上onClientClick事件。
(PS:各种转)
阅读(...) 评论()nodejs跳转页面_nodejs+跳转_壮志凌云
nodejs+跳转
nodejs+跳转&相关问答
如何看待Wordpress的新项目Calypso将改用Node.js+React重写?
今天心血来潮,回答一波技术问题。总体来说,我看到这个消息是非常兴奋!一颗赛艇!缘由是之前好歹也用过wordpress去搭过一段时间自己的blog,对它有感情。同时也试过其他一些blog,比如jekyll和hugo,一直觉得Wordpress的技术结构已经很老了,UI也看起来比较像80年代产物,早就应该到了改版的时候。这次Calypso就是对于wordpress的dashboard进行一次全面的升级,整个dashboard是用singlepageapp来和server的restfulAPI通信。首先看它的codename:Calypso:是古代一个神的名字。国外的公司在做一个项目的时候,经常喜欢用拉丁神话里的名字来命名,比如Iris,Zeus,Hermes(包包)等:具体可以看这个页面TwelveOlympiansFacebook里我知道的项目使用过宙斯,Iris,普罗米修斯,Titan等名字。具体来说Calypso的技术栈。除了这个问题描述里所说的之外,我们再具体看看它的github上面的详情:Calypsoisthenewfront-end–abeautifulredesignoftheWordPressdashboardusingasingle-pagewebapplication,poweredbytheRESTAPI.Calypsoisbuiltforreading,writing,andmanagingallofyourWordPresssitesinoneplace.It’sbuiltwithJavaScript–averylightnodeplusexpressserver,React.js,Flux,wpcom.js,andmanyotherwonderfullibrariesonthefront-end.精简起来:server:node+front-end:react.js+flux+wordpress自己的js。这里使用的技术栈的确是当今最先进同时稳定的。从客观结果来看,感觉他们也是比较喜欢JS,所以整个技术架构都是基于javascript来布局的。整体框架的选择以轻量级为主,比如expressserver:Express-Node.jswebapplicationframework,比如react.js也是。如果真的要提出一些建议的话,就是用redux去换掉flux,具体理由见:ReadMe|Redux上面收集了来自我们Facebook内部对于redux的看法,而且Facebook内部也在积极地使用redux。Redux和Flux在总体架构上区别不大,具体比较看来自redux作者的答案:javascript-WhyuseReduxoverFacebookFlux?另外UI方面的改进也不错(用过wordpress的admin页面的人都有感wordpress的UI都像上个时代的网页)。新版的UI:另外看github上的文件列表:还可以窥视一点有趣的工具:1.Webpack用来打包和混淆等;(替代了grunt)2.Vagrant用来配置;3.Dockerfile:说明使用了docker,而且docker肯定是未来的方向所在;现在在docker方向的创业我们觉得是很好的选择;4.npm:依赖管理5.各种linter。6.在wp-calypso/serveratmaster·Automattic/wp-calypso·GitHub还有对于serversiderendering的列表,另外可以看到使用node和jade。我最喜欢这次Calypso的几处改动:1.Singlepageapp+restfulAPISinglepageapp(单页app)在2010年开始流行(Backbone.js时代),主要好处就是反应快,所有的UI变化都在本地浏览器上完成,不需要重新去server请求一个页面,也不会有明显的页面跳转延时。和server的通信基于网页API(一般是restfulAPI),而传输的内容只是数据而已,没有了冗长的html、css和javascript的传输,所以速度要比原来快不少,即使on-wiredataformat用得是rawjson(如果换成thrift里的TCompact或者google的protobuf,或者iOS上比较流行的messagepack,可以让网络上传输的数据量更小)。另外更大的好处是可以复用这一套restfulAPI,用来给iOS和Android端使用,也可以后续开放给3rdpartydevelopers,做成一个开放平台。本质上也就是说:将前端逻辑和渲染做成独立的mvc结构,使其和其他移动端并列,用统一的restfulAPI来提供服务。2.React.js和Flux(Redux)的使用喜欢这个并不是我之前是Facebook的人,只是单纯从技术上觉得这个的确是以后前端的方向。因为什么?因为简单和清晰的逻辑。在Facebook的时候,我们工程师被techlead们(再次强调,是techlead,teamlead,engineeringlead,而不是techleader!!!不要再说chinglish了!)反复强调:complexityisthesourceofallevils.降低复杂度是关键的关键。而我在国内这一年,发行很多创业公司的技术栈是怎么老怎么来,或者怎么fancy怎么复杂怎么来。可能技术人员在这样情况下会特别有成就感(虚拟的),而且可以出来一些炫耀的东西。这是一个公司的CTO或者techpartner要极力禁止的。在Facebook奉行的是:”Movefast&breakthings”,中文翻译过来就是“糙快猛”。而react+flux/reduct正是在这种场景下诞生的。react主要解决view(UI)上的问题,让UI的书写可以像逻辑代码一样有复用和聚合,同时flux/redux的单向数据流可以将你前端的程序逻辑梳理地极为简单和清晰,不仅让bug发生的概率变小,而且代码的后续可维护性特别高:也就是说整体的开发速度和工程维护度都提高巨大!最后解答大家的一些疑惑:React技术够成熟吗?----React.js已经非常成熟,而且在Facebook内部各种项目都在使用。比如Facebook首页的整个search功能的UI都是react来完成的,还有里面很多详情页的展示也是react。新项目--比如之前的一个在线教育的项目,也是全部依赖于react写就。所以react.js可以放心大胆地去使用。另外和其他一些常用的开源框架(比如backbone)不太一样的地方是:react后面是有Facebook这样一个干爹的,所以不会没人管。整个facebook现在工程团队和公司现金流都是杠杠的,所以更新速度和bug修复速度都会有保证。React会比起一些业余时间完成的开源项目有保障很多。唯一要提醒的一点的事情是:reactnative(特别是android上)由于最近刚刚完成,可能坑很多;而且Facebook内部对于reactnative几乎没有怎么使用。所以使用reactnative要谨慎。(特别是Android)
学习vue.js,Node.JS等技术不知道写什么东西?请推荐点稍微复杂点的入门项目。
新鲜出炉,先放地址:GitHub-luoye-fe/goh5:visualh5edit个人开源H5CMS,类似易企秀、初页,虽然没人家那么牛。。\( ̄▽ ̄)/数据库:MongoDB后台:NodeJS前台:Vue、Vue-Router、Vuex..数据库MongoDB,后台全部restful_api,路由由前端控制,Vuex管理应用数据,Gulp+Webpack构建。后台部分自己也是刚起步,代码可能有点粗糙,谅解。NodeJS作后台已经是很多新项目的选择了,简单快捷,并且社区很活跃,大多刚起步时遇到的开发难题,前辈们都踩过,擅用搜索可以很快的用起来。不过大型网站的话。。。还有很远的路啊前台Vue部分,应该还好,而且Vue的文档和API都很友好,学起来主要是思想的转变。项目起步的时候双向绑定用的真心爽,后来越写越复杂,数据哪都能改,一不小心就埋坑,中途上了Vuex,世界清净了。列表页,编辑页,设置页,全部组件化,每个组件对数据的修改必须走Vuex,cms做完的作品落地展示用的Swiper,ejs渲染到页面,没有用前端渲染,也省了很多事。当然,刚完成最基本最基本的功能,比如元素的拖拽,属性编辑,动画等,其它的比如,元素事件,表单,视频,音乐,还有一些操作上体验的优化,键盘控制,也会一步步补。放几张截图。(自己拼的UI...丑勿怪!)有兴趣的小伙伴可以一起来。。。还想RN移植到pad上耍呢。。哈哈,想的有点远
右侧知心推荐打分

我要回帖

更多关于 nodejs跳转页面 的文章

 

随机推荐