我有一个app.js
文件,我在其中声明了如下函数:
function acceptReq(req, res) {
db.getDB().collection(collection).findOneAndUpdate({
_id: ObjectId("5c94f444dab6e423a488d2ae")
}, {
$set: {
requested: false,
requests: {
user: undefined,
time: undefined
},
Booked: true
}
}, {
returnOriginal: false
}, (err, result) = > {
if (err)
console.log(err);
else {
req.flash(
'success_msg',
'Request Accepted!'
);
res.redirect('/dashboard/requests')
}
});
}
我还有一个ejs文件,其中有一个按钮,当单击该按钮时,它将在app.js
中执行此功能:
<button onclick="acceptReq()" class="btn btn-success btn-block">Accept</button>
但是,每当我单击按钮时,文件都无法识别acceptReq()
。
如何正确声明供ejs读取的函数?
答案 0 :(得分:0)
您将无法使用的AFAIK。如果您看到代码acceptReq很可能是API端点处理程序方法,那么您可以定义API端点并将其用作处理程序,并通过在ejs文件的javascript部分中定义一个函数并传递该函数名称来调用该端点在按钮的onclick中。
<?php
// api/src/DataPersister/UsersDataPersister.php
namespace App\DataPersister;
use ApiPlatform\Core\DataPersister\DataPersisterInterface;
use App\Entity\Users;
use Doctrine\Common\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
final class UsersDataPersister implements DataPersisterInterface
{
private $managerRegistry;
public function __construct(ManagerRegistry $managerRegistry)
{
$this->managerRegistry = $managerRegistry;
}
public function supports($data): bool
{
return $data instanceof Users;
}
public function persist($data){
$em = $this->managerRegistry->getManagerForClass(Users::class);
$user = new Users();
//Persist User with encode password
return $user;
return new JsonResponse(['response'=>'yes']);
}
public function remove($data)
{
throw new \RuntimeException('"remove" is not supported');
}
}