Что такое JQuery пост URL?

Какой URL я указал для вызова $.post на сервер для файла node.js. Я продолжаю видеть учебники с php-файлами, но я не совсем понимаю, какие файлы node.js вызывать? Должен ли я разместить его в файле app.js или в файле маршрута?

Вот как выглядит файл 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);
});

Вот как выглядит файл маршрута: (Я знаю, что код в файле маршрута может быть неправильным при попытке извлечь user.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'}); 

                } 

            });
};

Это файл скрипта, пытающийся выяснить URL:

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

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

        );

        if($(this).html!=='Contact Requested') {
            return $(this).html('Contact Requested');
        }
        });  

Это файл Jade:

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

2 ответа

Решение

URL полностью зависит от вас. Из вашего отредактированного вопроса, /addContact будет правильным путем для использования с $.post, Я отмечаю, что ваш код в addContactPost функция, похоже, ничего не делает в случае успеха...

NodeJS будет работать как веб-сервер с собственным URL. Когда вы запускаете сервер, вы должны указать URL. Я предполагаю, что в большинстве примеров используется какой-то локальный адрес с портом. Затем вы можете отправить по этому адресу. Это не должен быть адрес php, если вы не заходите на страницу php на своем веб-сервере.

Другие вопросы по тегам