- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
编辑2
所以我已经尝试过
router.get('/dashboard/users/forms/competition-form/:id', ensureAuthenticated, (req, res, next) => {
CompetitionForm.find(req.params.id, function(err, CompetitionForm){
res.render('dashboard/users/forms/competition-form.hbs', {
pageTitle: 'Competition Form',
user_id: req.params.id
});
});
});
正如 @YouneL 所提到的,我还将我的帖子路由编辑为以下内容
// competition form edit
router.post('/dashboard/users/forms/competition-form/:id', (req, res) => {
var schoolName = req.body.schoolName;
var competitionDate = req.body.competitionDate;
var competitionTime = req.body.competitionTime;
var competitionVenue = req.body.competitionVenue;
var competitionTotalOfStudents = req.body.competitionTotalOfStudents;
var competitionTotalParticipated = req.body.competitionTotalParticipated;
var competitionTotalPersonnel = req.body.competitionTotalPersonnel;
var competitionJudge1Name = req.body.competitionJudge1Name;
var competitionJudge1Telephone = req.body.competitionJudge1Telephone;
var competitionJudge1Email = req.body.competitionJudge1Email;
var competitionJudge2Name = req.body.competitionJudge2Name;
var competitionJudge2Telephone = req.body.competitionJudge2Telephone;
var competitionJudge2Email = req.body.competitionJudge2Email;
var competitionJudge3Name = req.body.competitionJudge3Name;
var competitionJudge3Telephone = req.body.competitionJudge3Telephone;
var competitionJudge3Email = req.body.competitionJudge3Email;
// admin fields
var competitionRequiredPhotos = req.body.competitionRequiredPhotos;
var competitionRequiredCertifications = req.body.competitionRequiredCertification;
console.log(CompetitionForm);
console.log('form successful');
res.redirect('/dashboard');
});
现在,当提交表单时,我会被重定向到仪表板,但是数据库没有更新,应该有一个名为“CompetitionForm”的竞赛表单的新集合
编辑 1
我在发布路线上运行了 console.log(CompetitionForm);
并得到了以下输出。
[nodemon] restarting due to changes...
[nodemon] starting `node app.js hbs, css`
Server is up on port 3000
Connection has been established
Connection has been established
Fri Jan 19 2018 17:15:21 GMT+0000 (GMT): GET /dashboard/users/forms/competition-form/5a5c6740b9e210087e098fd6
Fri Jan 19 2018 17:15:21 GMT+0000 (GMT): GET /users/login
Fri Jan 19 2018 17:15:22 GMT+0000 (GMT): GET /favicon.ico
Fri Jan 19 2018 17:15:29 GMT+0000 (GMT): POST /users/login
Fri Jan 19 2018 17:15:29 GMT+0000 (GMT): GET /users/login
Fri Jan 19 2018 17:15:29 GMT+0000 (GMT): GET /favicon.ico
Fri Jan 19 2018 17:15:34 GMT+0000 (GMT): POST /users/login
Fri Jan 19 2018 17:15:34 GMT+0000 (GMT): GET /dashboard
Fri Jan 19 2018 17:15:34 GMT+0000 (GMT): GET /favicon.ico
Fri Jan 19 2018 17:15:36 GMT+0000 (GMT): GET /dashboard/users/forms/competition-form/5a5c6740b9e210087e098fd6
Fri Jan 19 2018 17:15:37 GMT+0000 (GMT): GET /favicon.ico
Fri Jan 19 2018 17:16:07 GMT+0000 (GMT): POST /dashboard/users/forms/competition-form/5a5c6740b9e210087e098fd6
{ [Function: model]
hooks: Kareem { _pres: {}, _posts: {} },
base:
Mongoose {
connections: [ [NativeConnection] ],
models: { User: [Function], CompetitionForm: [Circular] },
modelSchemas: { User: [Schema], CompetitionForm: [Schema] },
options: { pluralization: true },
plugins: [ [Array], [Array], [Array] ] },
modelName: 'CompetitionForm',
model: [Function: model],
db:
NativeConnection {
base:
Mongoose {
connections: [Array],
models: [Object],
modelSchemas: [Object],
options: [Object],
plugins: [Array] },
collections:
{ users: [NativeCollection],
competitionforms: [NativeCollection] },
models: { User: [Function], CompetitionForm: [Circular] },
config: { autoIndex: true },
replica: false,
hosts: null,
host: 'localhost',
port: 27017,
user: null,
pass: null,
name: 'pol-development',
options: null,
otherDbs: [],
states:
{ '0': 'disconnected',
'1': 'connected',
'2': 'connecting',
'3': 'disconnecting',
'4': 'unauthorized',
'99': 'uninitialized',
disconnected: 0,
connected: 1,
connecting: 2,
disconnecting: 3,
unauthorized: 4,
uninitialized: 99 },
_readyState: 1,
_closeCalled: false,
_hasOpened: true,
_listening: false,
_connectionOptions: {},
_events: { error: [Array] },
_eventsCount: 1,
db:
Db {
domain: null,
_events: [Object],
_eventsCount: 2,
_maxListeners: undefined,
s: [Object],
serverConfig: [Getter],
bufferMaxEntries: [Getter],
databaseName: [Getter] } },
discriminators: undefined,
'$appliedMethods': true,
'$appliedHooks': true,
_events: { init: [Function], save: [Function] },
_eventsCount: 2,
schema:
Schema {
obj:
{ schoolName: [Function: String],
competitionDate: [Function: String],
competitionTime: [Function: String],
competitionVenue: [Function: String],
competitionTotalOfStudents: [Function: Number],
competitionTotalParticipated: [Function: Number],
competitionTotalPersonnel: [Function: Number],
competitionJudge1Name: [Function: String],
competitionJudge1Telephone: [Function: String],
competitionJudge1Email: [Function: String],
competitionJudge2Name: [Function: String],
competitionJudge2Telephone: [Function: String],
competitionJudge2Email: [Function: String],
competitionJudge3Name: [Function: String],
competitionJudge3Telephone: [Function: String],
competitionJudge3Email: [Function: String],
competitionRequiredPhotos: [Function: Boolean],
competitionRequiredCertifications: [Function: Boolean] },
paths:
{ schoolName: [SchemaString],
competitionDate: [SchemaString],
competitionTime: [SchemaString],
competitionVenue: [SchemaString],
competitionTotalOfStudents: [SchemaNumber],
competitionTotalParticipated: [SchemaNumber],
competitionTotalPersonnel: [SchemaNumber],
competitionJudge1Name: [SchemaString],
competitionJudge1Telephone: [SchemaString],
competitionJudge1Email: [SchemaString],
competitionJudge2Name: [SchemaString],
competitionJudge2Telephone: [SchemaString],
competitionJudge2Email: [SchemaString],
competitionJudge3Name: [SchemaString],
competitionJudge3Telephone: [SchemaString],
competitionJudge3Email: [SchemaString],
competitionRequiredPhotos: [SchemaBoolean],
competitionRequiredCertifications: [SchemaBoolean],
_id: [ObjectId],
__v: [SchemaNumber] },
aliases: {},
subpaths: {},
virtuals: { id: [VirtualType] },
singleNestedPaths: {},
nested: {},
inherits: {},
callQueue: [ [Array], [Array], [Array], [Array], [Array], [Array] ],
_indexes: [],
methods: {},
statics: {},
tree:
{ schoolName: [Function: String],
competitionDate: [Function: String],
competitionTime: [Function: String],
competitionVenue: [Function: String],
competitionTotalOfStudents: [Function: Number],
competitionTotalParticipated: [Function: Number],
competitionTotalPersonnel: [Function: Number],
competitionJudge1Name: [Function: String],
competitionJudge1Telephone: [Function: String],
competitionJudge1Email: [Function: String],
competitionJudge2Name: [Function: String],
competitionJudge2Telephone: [Function: String],
competitionJudge2Email: [Function: String],
competitionJudge3Name: [Function: String],
competitionJudge3Telephone: [Function: String],
competitionJudge3Email: [Function: String],
competitionRequiredPhotos: [Function: Boolean],
competitionRequiredCertifications: [Function: Boolean],
_id: [Object],
__v: [Function: Number],
id: [VirtualType] },
query: {},
childSchemas: [],
plugins: [ [Object], [Object], [Object], [Object] ],
s: { hooks: [Kareem], kareemHooks: [Object] },
_userProvidedOptions: undefined,
options:
{ retainKeyOrder: false,
typeKey: 'type',
id: true,
noVirtualId: false,
_id: true,
noId: false,
validateBeforeSave: true,
read: null,
shardKey: null,
autoIndex: null,
minimize: true,
discriminatorKey: '__t',
versionKey: '__v',
capped: false,
bufferCommands: true,
strict: true,
pluralization: true },
'$globalPluginsApplied': true },
collection:
NativeCollection {
collection: Collection { s: [Object] },
opts:
{ bufferCommands: true,
capped: false,
'$wasForceClosed': undefined },
name: 'competitionforms',
collectionName: 'competitionforms',
conn:
NativeConnection {
base: [Mongoose],
collections: [Object],
models: [Object],
config: [Object],
replica: false,
hosts: null,
host: 'localhost',
port: 27017,
user: null,
pass: null,
name: 'pol-development',
options: null,
otherDbs: [],
states: [Object],
_readyState: 1,
_closeCalled: false,
_hasOpened: true,
_listening: false,
_connectionOptions: {},
_events: [Object],
_eventsCount: 1,
db: [Db] },
queue: [],
buffer: false,
emitter:
EventEmitter {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined } },
Query:
{ [Function]
base:
Query {
toConstructor: [Function: toConstructor],
setOptions: [Function],
collection: [Function: collection],
'$where': [Function],
where: [Function],
equals: [Function: equals],
eq: [Function: eq],
or: [Function: or],
nor: [Function: nor],
and: [Function: and],
gt: [Function],
gte: [Function],
lt: [Function],
lte: [Function],
ne: [Function],
in: [Function],
nin: [Function],
all: [Function],
regex: [Function],
size: [Function],
maxDistance: [Function],
minDistance: [Function],
mod: [Function],
exists: [Function],
elemMatch: [Function],
within: [Function: within],
box: [Function],
polygon: [Function],
circle: [Function],
near: [Function: near],
intersects: [Function: intersects],
geometry: [Function: geometry],
select: [Function: select],
slice: [Function],
sort: [Function],
limit: [Function],
skip: [Function],
maxScan: [Function],
batchSize: [Function],
comment: [Function],
maxTime: [Function],
snapshot: [Function],
hint: [Function],
slaveOk: [Function],
read: [Function],
tailable: [Function],
merge: [Function],
find: [Function],
cursor: [Function: cursor],
findOne: [Function],
count: [Function],
distinct: [Function],
update: [Function: update],
updateMany: [Function: updateMany],
updateOne: [Function: updateOne],
replaceOne: [Function: replaceOne],
remove: [Function],
deleteOne: [Function],
deleteMany: [Function],
findOneAndUpdate: [Function],
findOneAndRemove: [Function],
_findAndModify: [Function],
_wrapCallback: [Function],
setTraceFunction: [Function],
exec: [Function: exec],
thunk: [Function],
then: [Function],
stream: [Function],
selected: [Function: selected],
selectedInclusively: [Function: selectedInclusively],
selectedExclusively: [Function: selectedExclusively],
_mergeUpdate: [Function],
_optionsForExec: [Function],
_fieldsForExec: [Function],
_updateForExec: [Function],
_ensurePath: [Function],
_validate: [Function] } },
'$__insertMany': [Function],
insertMany: [Function],
'$init': Promise { [Circular] } }
原创
我正在尝试根据用户 ID 在仪表板中创建一个 NodeJS 表单,但由于某种原因它无法发布。
这是一些代码:
<form action="/dashboard/users/forms/competition-form/{{user.id}}" method="post">
路线
// competition form details
router.get('/dashboard/users/forms/competition-form/:id', ensureAuthenticated, (req, res, next) => {
CompetitionForm.find(req.params.id, function(err, CompetitionForm){
res.render('dashboard/users/forms/competition-form.hbs', {
pageTitle: 'Competition Form',
});
});
});
// competition form edit
router.post('/dashboard/users/forms/competition-form/:id', (req, res) => {
var schoolName = req.body.schoolName;
var competitionDate = req.body.competitionDate;
var competitionTime = req.body.competitionTime;
var competitionVenue = req.body.competitionVenue;
var competitionTotalOfStudents = req.body.competitionTotalOfStudents;
var competitionTotalParticipated = req.body.competitionTotalParticipated;
var competitionTotalPersonnel = req.body.competitionTotalPersonnel;
var competitionJudge1Name = req.body.competitionJudge1Name;
var competitionJudge1Telephone = req.body.competitionJudge1Telephone;
var competitionJudge1Email = req.body.competitionJudge1Email;
var competitionJudge2Name = req.body.competitionJudge2Name;
var competitionJudge2Telephone = req.body.competitionJudge2Telephone;
var competitionJudge2Email = req.body.competitionJudge2Email;
var competitionJudge3Name = req.body.competitionJudge3Name;
var competitionJudge3Telephone = req.body.competitionJudge3Telephone;
var competitionJudge3Email = req.body.competitionJudge3Email;
// admin fields
var competitionRequiredPhotos = req.body.competitionRequiredPhotos;
var competitionRequiredCertifications = req.body.competitionRequiredCertification;
});
我的期望
当用户登录时,他们应该能够填写此表单,该用户属于此表单,因此它基于用户 ID。
不太确定我在这里缺少什么。
最佳答案
您应该更改 View 以便使用路由处理程序传递的 user_id
(即 router.get(...)
),也可以使用 Model.findOneAndUpdate()将发布的数据保存到数据库中:
查看:
<form action="/dashboard/users/forms/competition-form/{{ user_id }}" method="post">
帖子处理程序:
router.post('/dashboard/users/forms/competition-form/:id', (req, res) => {
CompetitionForm.findOneAndUpdate( { _id: req.params.id }, req.body, (err, competition) => {
if (err) {
console.log(`Error saving data: ${err}`);
return res.send('Error saving data');
}
res.redirect('/dashboard');
} );
});
关于html - 无法发布nodejs表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48346074/
我通过 spring ioc 编写了一些 Rest 应用程序。但我无法解决这个问题。这是我的异常(exception): org.springframework.beans.factory.BeanC
我对 TestNG、Spring 框架等完全陌生,我正在尝试使用注释 @Value通过 @Configuration 访问配置文件注释。 我在这里想要实现的目标是让控制台从配置文件中写出“hi”,通过
为此工作了几个小时。我完全被难住了。 这是 CS113 的实验室。 如果用户在程序(二进制计算器)结束时选择继续,我们需要使用 goto 语句来到达程序的顶部。 但是,我们还需要释放所有分配的内存。
我正在尝试使用 ffmpeg 库构建一个小的 C 程序。但是我什至无法使用 avformat_open_input() 打开音频文件设置检查错误代码的函数后,我得到以下输出: Error code:
使用 Spring Initializer 创建一个简单的 Spring boot。我只在可用选项下选择 DevTools。 创建项目后,无需对其进行任何更改,即可正常运行程序。 现在,当我尝试在项目
所以我只是在 Mac OS X 中通过 brew 安装了 qt。但是它无法链接它。当我尝试运行 brew link qt 或 brew link --overwrite qt 我得到以下信息: ton
我在提交和 pull 时遇到了问题:在提交的 IDE 中,我看到: warning not all local changes may be shown due to an error: unable
我跑 man gcc | grep "-L" 我明白了 Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more inf
我有一段代码,旨在接收任何 URL 并将其从网络上撕下来。到目前为止,它运行良好,直到有人给了它这个 URL: http://www.aspensurgical.com/static/images/a
在过去的 5 个小时里,我一直在尝试在我的服务器上设置 WireGuard,但在完成所有设置后,我无法 ping IP 或解析域。 下面是服务器配置 [Interface] Address = 10.
我正在尝试在 GitLab 中 fork 我的一个私有(private)项目,但是当我按下 fork 按钮时,我会收到以下信息: No available namespaces to fork the
我这里遇到了一些问题。我是 node.js 和 Rest API 的新手,但我正在尝试自学。我制作了 REST API,使用 MongoDB 与我的数据库进行通信,我使用 Postman 来测试我的路
下面的代码在控制台中给出以下消息: Uncaught DOMException: Failed to execute 'appendChild' on 'Node': The new child el
我正在尝试调用一个新端点来显示数据,我意识到在上一组有效的数据中,它在数据周围用一对额外的“[]”括号进行控制台,我认为这就是问题是,而新端点不会以我使用数据的方式产生它! 这是 NgFor 失败的原
我正在尝试将我的 Symfony2 应用程序部署到我的 Azure Web 应用程序,但遇到了一些麻烦。 推送到远程时,我在终端中收到以下消息 remote: Updating branch 'mas
Minikube已启动并正在运行,没有任何错误,但是我无法 curl IP。我在这里遵循:https://docs.traefik.io/user-guide/kubernetes/,似乎没有提到关闭
每当我尝试docker组成任何项目时,都会出现以下错误。 我尝试过有和没有sudo 我在这台机器上只有这个问题。我可以在Mac和Amazon WorkSpace上运行相同的容器。 (myslabs)
我正在尝试 pip install stanza 并收到此消息: ERROR: No matching distribution found for torch>=1.3.0 (from stanza
DNS 解析看起来不错,但我无法 ping 我的服务。可能是什么原因? 来自集群中的另一个 Pod: $ ping backend PING backend.default.svc.cluster.l
我正在使用Hibernate 4 + Spring MVC 4当我开始 Apache Tomcat Server 8我收到此错误: Error creating bean with name 'wel
我是一名优秀的程序员,十分优秀!