簡體   English   中英

無法發布/發布nodejs

[英]cannot post /post nodejs

我的app.coffee中的代碼使用咖啡腳本,我已將正文解析器和方法ovveride

           express = require("express")
          everyauth = require("everyauth")
             should = require("should")
        fs = require("fs")

      everyauth.debug = true
        usersByLogin = krishna:
          login: "krishna"
          email: "krishna@blogab.com"
             password: "krishna"

          everyauth.password.loginWith("login").getLoginPath("/login").postLoginPath("        
       /login").loginView("bcore/login.jade").loginLocals((req, res, done) ->
      setTimeout (->
       done null,
           title: "blogab - login"
          ), 200
         ).authenticate((login, password) ->
      errors = []
        errors.push "Missing login"  unless login
       errors.push "Missing password"  unless password
       return errors  if errors.length
         user = usersByLogin[login]
        return [ "Login failed" ]  unless user
        return [ "Login failed" ]  if user.password isnt password
      user
       ).getRegisterPath("/register").postRegisterPath("    

         /register").registerView("bcore                 

         /register.jade").registerLocals((req, res, done) ->
      setTimeout (->
         done null,
            title: " Register"
          ), 200
           ).extractExtraRegistrationParams((req) ->
        email: req.body.email
       ).validateRegistration((newUserAttrs, errors) ->
        login = newUserAttrs.login
        errors.push "Login already taken"  if usersByLogin[login]
        errors
         ).registerUser((newUserAttrs) ->
            login = newUserAttrs[@loginKey()]
             usersByLogin[login] = newUserAttrs
           ).loginSuccessRedirect("/admin").registerSuccessRedirect "/admin"
                    app =  express.createServer

          (express.bodyParser(),express.methodOverride(),     
             express.static(__dirname + "/public"),


                 express.session(secret: "htuayreve"),  everyauth.middleware())

              express.cookieParser(), 
               app.configure ->
             app.set "view engine", "jade"

            app.get "/", (req, res) ->
         res.render "templates/default/index",
          title: "blogab"
          users: JSON.stringify(usersByLogin, null, 2)

         app.get "/admin", (req, res) ->
         res.render "bcore/admin",
         title: "Blogab-admin"
          users: JSON.stringify(usersByLogin, null, 2)

           app.get "/login", (req, res) ->
            res.render "bcore/login",
             title: "login"
             users: JSON.stringify(usersByLogin, null, 2)

               app.get "/post", (req, res) ->
                   res.render "bcore/viewpost",
                    title: "login"
                    users: JSON.stringify(usersByLogin, null, 2)

            app.get "/admin/post/new", (req, res) ->
            res.render "bcore/newpost",
           title: "Blogab-newpost"
            users: JSON.stringify(usersByLogin, null, 2)

       everyauth.helpExpress app
         app.listen 1224, ->
          console.log "blogab is  running on port %d in %s mode",
            app.address().port,   app.setting

在newpost.jade中,它是newpost的代碼

            !!! 5
           html(xmlns='http://www.w3.org/1999/xhtml')
           head
           title
          link(href='/css/master.css', rel='stylesheet', type='text/css')
          body
           h1
           | New post
           form#new_post.new_post(method='post', action='/posts')
             .field
              label(for='post_title') Title
               br
                 input#post_title(type='text', name='title', size='30')
           .field
              label(for='post_content') Content
            br
               textarea#post_content(name='content', cols='40', rows='20')
          .actions
              input#post_submit(type='submit', value='Create Post')
            p
               br
                 a(href='/posts') Back

當我單擊將其發布在newpost.jade中時,它說無法發布/ post,而我正在創建基於nodejs的cms,我曾使用過Express Body Parser和方法ovveride

似乎您忘記了定義POST / posts路由:

app.get '/posts', (req, res, next) ->

經過編輯以添加示例,您的代碼確實很難閱讀。 我這樣寫:

express = require 'express'
app = express.createServer()

app.configure ->
  app.use express.methodOverride()
  app.use express.bodyParser()
  app.use app.router

app.post '/posts', (req, res) -> res.send req.body

app.listen 3000

$ curl localhost:3000/posts -X POST -d "param1=value1&param2=value2"

{"param1":"value1","param2":"value2"}%

如果要發布數據來表達,則必須使用POST動詞定義路線:

app.post '/posts', (req, res) ->

另外,我不確定您是要將路由定義為“ / post”還是“ / posts”,因此請仔細檢查客戶端和服務器代碼是否匹配。

app.get將無法發布數據,請嘗試始終使用app.post來發布數據。 它對我有用:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM