2013-07-18 51 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更有意義。 –