2013-07-18 32 views
0

我给$.post调用一个node.js文件的服务器的URL是什么。我一直看到php文件的教程,但我对什么node.js文件要调用困惑?我想将它发布到app.js文件或路径文件?什么是jQuery发布网址?

这是app.js文件的样子:

var express = require('express') 
    , app = express() 
    , dbUserModel = require('./models/user') 
    , db = require('./db') 
    , pass = require('./config/passport') 
    , passport = require('passport') 
    , routes = require('./routes/index') 
    , user = require('./routes/user') 
    , path = require('path') 
    , http = require('http') 
    , connect = require('connect') 
    , mongoose = require('mongoose') 
    , mongoConnect = mongoose.connect('mongodb://localhost/test5'); 

// all environments 

app.configure(function(){ 
    app.set('port', process.env.PORT || 3000); 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 


    app.use(express.favicon()); 
    app.use(express.logger('dev')); 
    app.use(express.bodyParser()); 
    app.use(express.cookieParser('sabkdasdkjhakhfkahf7232ujdijaw9jok&^&^@88')); 
    //app.use(express.cookieSession()); 
    app.use(express.methodOverride()); 
    app.use(passport.initialize()); 
    app.use(passport.session()); 
    app.use(app.router); 
    app.use(express.static(path.join(__dirname, 'public')));  

    //use bottom for 404 error 
    app.use(function(req,res){ 
    res.render('noPage.jade'); 
    }); 

}); 
    app.get('/', routes.index); 
    app.get('/register', user.mustBeLoggedOut, user.register); 
    app.post('/register', user.registerPost); 
    app.get('/login', user.mustBeLoggedOut, user.login); 
    app.post('/login', user.loginPost); 
    app.get('/userProfile', user.mustBeLoggedIn, user.userProfile); 
    app.get('/editUserProfile', user.mustBeLoggedIn, user.editUserProfile); 
    app.post('/editUserProfile', user.editUserProfilePost); 
    app.get('/loggedIn', user.mustBeLoggedIn, user.loggedIn); 
    app.get('/contactList', user.mustBeLoggedIn, user.contactList); 
    app.get('/search', user.search); 
    app.post('/search', user.searchPost); 
    app.get('/user/:id', user.user); 
    app.post('/addContact', user.addContactPost); 


http.createServer(app).listen(app.get('port'), function(){ 
    console.log('Express server listening on port ' + app.get('port')); 
    console.log('Users: ' + db.collections.users); 
}); 

这是该路由的文件看起来是这样的:(我知道在路由文件中的代码可能无法在试图提取用户是正确的

$('.addContact').click(function() { 
     $.post('user.js', 
      function(data) { 

      $('.addContact').html(data); 
      } 

     ); 

     if($(this).html!=='Contact Requested') { 
      return $(this).html('Contact Requested'); 
     } 
     }); 
0123:.ID与该按钮,还在进展中的工作)

exports.addContactPost = function(req, res, err) { 
    User.findByIdAndUpdate(req.signedCookies.userid,{ 
       friendRequest: req.body.userid 
      }, function(err) { 
       if(err) { 
        console.log("post2"); 
        return res.render('addContactError', {title: 'Weblio'}); 

       } 

      }); 
}; 

这是脚本文件,试图找出相关的网址

这是玉文件:

extends layout 
block content 
    div 
    legend Search Results 
    div#userResults 
    for user in ufirstName 
     a(href='/user/#{user.id}') 
      p #{user.firstName} #{user.lastName} 
     button.addContact Add Contact 
+0

我已经添加了'express'标记,因为显然你使用'express'。 –

回答

0

该URL完全取决于你。从你编辑的问题,​​将是一个有效的路径使用$.post。我注意到你在addContactPost函数中的代码并不是似乎呈现任何成功......

+0

我刚刚更新了app.js文件,以便您可以看到所有内容,如果我做了/ addContact,那么它应该可以工作吗? – Lion789

+0

,我可以从玉文件中提取用户标识,即附加用户和创建添加联系人按钮的任何线索。 – Lion789

+0

@ Lion789:是的,'/ addContact'是给定您的设置的合适的相对URL。我害怕我对翡翠一无所知。 –

0

会的NodeJS运行与自身的URL的Web服务器。当你启动服务器时,你必须指定一个url。我想大多数例子都使用一个本地主机地址和一个端口。 然后,您可以发布到该地址。它不应该是一个PHP地址,除非你通过你自己的网络服务器上的PHP页面

+0

是的,我知道这不是一个PHP文件。是否有可能给我一个例子,将在URL部分,它是$ .post('user.js'//路线文件或将它是http:// localhost:3000 /搜索,我仍然困惑 – Lion789

+0

好的,有没有办法使它通用,所以如果我在其他地方抛出添加按钮,网址不必包含在邮件中? – Lion789

+0

@TGH:当然,使用相对URL更有意义。 –