kann keine post /post nodejs
den code in meiner app.Kaffee es nutzt die Kaffee-Skript habe ich Körper-parser und-Methode ovveride
express = require("express")
everyauth = require("everyauth")
should = require("should")
fs = require("fs")
everyauth.debug = true
usersByLogin = krishna:
login: "krishna"
email: "[email protected]"
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
und in newpost.jade es ist der code für 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
wenn ich auf post-it-in newpost.jade sagt es kann keine post /post und ich Schaffe nodejs-basierte cms, die ich haved verwendet, express-Körper-parser und-Methode ovveride
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint, dass Sie vergessen haben zu definieren, die POST /posts route:
Bearbeitet hinzufügen ein Beispiel, dein code war wirklich schwer zu Lesen. Ich schrieb:
$ curl localhost:3000/posts -X POST -d "param1=value1¶m2=value2"
{"param1":"value1","param2":"value2"}%
Wenn Sie wollen, um post-Daten zu express müssen Sie definieren Sie Ihre route mit dem verb POST:
Ich bin mir auch nicht sicher, ob du meinst, definieren Sie Ihre route '/post - ' oder '/posts " so überprüfen Sie das client-und server-code entspricht.
app.Holen Sie sich wird nicht funktionieren, post-Daten, versuchen Sie es mit app.post immer um post-Daten.
bei mir hat es geklappt 🙂