Wie interagiert das Frontend über Ajax mit node.js?
滿天的星座
滿天的星座 2017-05-24 11:38:22
0
3
671

Zuallererst meine Dateistruktur:
web
-public
--login.html (die Anmeldeseite ist eine statische Seite)
-veiws
--index.jade
-routes
--index.js
-app .js
Frontend-Code

$("#login").click(function(){
        var username=$('#un').val();
        var pw=$("#pw").val();
        var data = {"un":username,"pw":pw};
        $.ajax({
            type:"post",
            url:"/login",
            async:true,
               success: function(data,status){ 
                    if(status == 'success'){ 
                        location.href = '../views/index.jade';
                    }
                },
                error: function(data,status){ 
                    if(status == 'error'){ 
                        alert("密码或者用户名错误");
                    }
        });
    })

Was soll ich in die URL in $.ajax schreiben?
Außerdem ist mein Servercode in app.js oder index.js im Router-Ordner geschrieben? Oder erstellen Sie eine neue JS-Datei, schreiben Sie den Servercode hinein und schreiben Sie dann das relative Verzeichnis der JS-Datei in die URL (dies scheint bei PHP der Fall zu sein).
Es gibt auch router.get('/', function(req, res, next){}) in index.js und var router = require('./routes/index');app in
app.js Was ist Der Unterschied zwischen .use('/',router) und dem verbindlichen Domänennamen? Nach meinem Verständnis führt der Server automatisch app.js aus und app.use entspricht dann dem Verschieben der Funktionen in einen Stapel und deren Ausführung. Wenn index.js ausgeführt wird, rendert index.js dann die Jade-Vorlage in Ansichten entsprechend der URL-Adresse und bei jeder Aktualisierung und erneuten Darstellung (es ist nicht klar, ob app.js ohne Aktualisierung erneut ausgeführt wird oder index.js erneut ausgeführt wird).

滿天的星座
滿天的星座

Antworte allen(3)
仅有的幸福

你可以试试在 segmentFault 的 控制台那里输入下面的代码

$.ajax({
    url: '/',
    success: res => console.log(res), 
    error: err => console.log(err)
}); 


然后你会拿到 / 这个 html 的文件内容。


你的问题

假设你监听了 3000 端口,而且你定义了 /login 这个路由

那么 URL 应该填 /login


这个 app.use 后面的内容叫做中间件

比如我访问 http://localhost:3000/api/login

恰好我有个中间件刚刚好可以匹配到 /api/login 那么 express 会把 req res 交给这个中间件做处理

伊谢尔伦

URL 可以是相对的也可以是绝对的,绝对的从 http(s):// 开始,可以指定任何域名上的URL,不过要注意跨域访问的问题。相对的则是相对于当前页面的 URL,

url 解释
/<path> / 开始的相对路径,相对于根,即当前页面所在的 Domain(主机域名)
../<path> 从当前页面所在的上层路径开始,可以多个 ../ 连用表示上面若干层
./ 当前页面相同的路径开始,与不要 ./ 是同样的效果

这里需要注意的是当前页面路径的认定,因为URL中 folder/ 有可简写成 folder,而有没有 / 所代表的位置完全不同(在当今路由广泛使用的情况下,已经不是通过扩展名来区分目录或页面了),所以一般建议前端至少写相对于根的路径。

我想大声告诉你

你写'/'是代表当前端口,url是你在nodejs中的路径

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage